10 lines
3.7 KiB
Markdown
10 lines
3.7 KiB
Markdown
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`。
|