Files
ElyOffice/tasks/reviews/C11.8-r3.md
T

6 lines
2.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
FAIL
crates/ely-pdf-engine/shim/ely_mupdf.c:125 — 损坏扫描跳过图片流,图片解码失败后的普通渲染也返回成功,受损文件仍能通过 Save 覆盖原件,违反 PDF-14 和错误须暴露的规则。具体场景:xref、对象偏移与流长度正确,页面绘制一个 4×4 RGB 图片,其 /FlateDecode 流为 `not a zlib!!`。真实 worker 报 `zlib error: incorrect header check`、`read error; treating as end of file`、`padding truncated image`;修复报告却为 None,图片导出报错,普通渲染和保存成功。应用探针确认 risk=None、repair=None;旋转后执行 Save,原件从 685 字节变为 692 字节,原件保留断言失败。证据:/tmp/ely-c118-r3-final-probes.log;副本中去掉图片流的扫描豁免后,修复报告断言通过(/tmp/ely-c118-r3-image-repair-probe.log)。修复方向:把图片解码失败纳入损坏判定和错误回报;延迟解码时也须在渲染或保存路径更新恢复风险,受损会话保存到独立副本。补充有效 xref 配合损坏图片流的应用保存回归。
apps/ely-pdf/src/output.rs:101 — 图片导出在等待排队编辑及路径选择之前捕获页码,执行时继续使用旧页码,缺少文档版本核对;结构编辑后会成功导出另一页,违反 PDF-13。具体场景:三页宽度依次为 100、200、300 点,选择第二页;删除第一页仍在排队时打开导出、选择“所选”、72 dpi,再选输出目录。经实际 on_export、choose_export 和路径选择回调复现:删除完成后,旧索引 1 指向原第三页,生成的 doc-2.png 宽度为 300 像素,所选页应为 200 像素,所选页内容断言失败。证据:/tmp/ely-c118-r3-final-probes.log,r3_a_picked_image_keeps_its_page_across_pending_delete。修复方向:将所选页与发起时的文档版本绑定,在等待编辑完成及路径回调后核对;版本变化时明确拒绝过期请求,或从该版本的快照导出。回归须覆盖排队删页、移动页面以及延迟路径选择。