3.7 KiB
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。