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

10 lines
3.7 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_alt.c:46 — 结构元素的页归属只按自身或祖先的 `/Pg` 判断,遗漏由子节点 MCR 指定页面的合法结构元素;删除字形后其 `/ActualText`、`/Alt` 仍泄露敏感文字,违反 PDF-09、§11.4、QA-14。复现:带 `/MarkInfo /Marked true`、`/StructParents 0` 与完整 `/ParentTree` 的单页 PDF,正文以 `/MCID 0` 绘制 `SECRET-MCR`;结构元素自身省略 `/Pg`,其 `/K << /Type /MCR /Pg 3 0 R /MCID 0 >>` 指向该页,同时带 `/ActualText (SECRET-MCR)` 与 `/Alt (SECRET-MCR)`。删除 `[60,70,220,110]` 后 worker 返回 `text=0, light=0, objects=0, versions=1`,独立读取输出结构树仍得到两份 `SECRET-MCR`。修复方向:结合子节点 MCR、OBJR 和结构祖先判定受删除页面影响的语义元素,清除相关替代文字,并以该结构形式增加输出对象残留回归。
crates/ely-pdf-engine/shim/ely_redact.c:106 — 删除页面内容时保留该页原有 `/Thumb`;原始图片经缩略图引用继续可达,紧缩写出与页面绘制核验均放过残留,违反 PDF-09、§11.4、QA-14。复现:100×50 点单页 PDF,通过 `q 100 0 0 50 0 0 cm /Im Do Q` 绘制 2×1 RGB 图片,像素为 `[255,0,0,0,0,255]`,页面 `/Thumb` 引用同一图片对象。标记整页 `[0,0,100,50]` 删除,worker 返回 `text=0, light=0, objects=0, versions=1`;输出页面全黑,`/Resources` 已空,但 `/Thumb 4 0 R` 及原始六个像素字节完整保留。修复方向:删除或重建受处理页的缩略图,核验覆盖页面附属引用中的图片,增加缩略图与页面图片共享对象的回归。
crates/ely-pdf-engine/shim/ely_clean.c:66 — 隐藏内容过滤只删字形,留下标记内容的语义文字;清理后的重复计数将此残留报告为零,违反 PDF-10。复现:正文为 `/Span << /ActualText (SECRET-HIDDEN-ACTUAL) >> BDC BT /F1 12 Tf 3 Tr 72 700 Td (SECRET-HIDDEN-ACTUAL) Tj ET EMC`。扫描返回 `hidden=1`;仅勾选隐藏内容清理成功并返回所有类别为零。独立解码输出内容流仍得到 `/Span<</ActualText(SECRET-HIDDEN-ACTUAL)>>BDC q EMC Q`,原隐藏文字可恢复。修复方向:过滤隐藏字形时同步清理其标记内容和关联结构元素中的语义文字,输出核验增加独立语义残留检查,并补充带 `/ActualText` 的隐藏文字回归。
crates/ely-pdf-engine/shim/ely_clean.c:204 — 隐藏批注遍历只走 `pdf_first_annot`,遗漏 Link 与 Widget;扫描与清理共同漏掉它们,界面据零计数禁用隐藏内容选项,违反 PDF-10 和 agents.md 的隐藏批注清理约定。复现一:页面 `/Annots` 含 `/Subtype /Link /F 2`,`/Contents` 与 `/A /URI` 均含 `SECRET-HIDDEN-LINK`。复现二:页面与 `/AcroForm/Fields` 引用 `/Subtype /Widget /F 2 /FT /Tx /V (SECRET-HIDDEN-WIDGET)`。两份文件均扫描为 `hidden=0, scripts=0, hidden_annots=0`;直接请求仅隐藏内容清理也返回全零,输出完整保留隐藏链接或隐藏字段及其内容。修复方向:按原始 `/Annots` 覆盖全部隐藏或不可见批注类型,删除隐藏 Widget 时同步清理字段树与值,补充隐藏 Link、Widget 的扫描及输出对象回归。本轮自行执行 worker 构建、65 项引擎测试、90 项应用测试与范围内行数及注释检查,均通过;上一轮六项原始复现场景的独立重放全部通过。新增失败场景与独立对象检查见 `/tmp/c116-r3-probes.log`,构建及测试日志见 `/tmp/c116-r3-build.log`、`/tmp/c116-r3-engine.log`、`/tmp/c116-r3-app.log`;665 个项目文件散列保持一致,临时探针和 PDF 已在写结论前删除,本轮直接使用原树构建的 worker,清理记录见 `/tmp/c116-r3-audit.log`。