Files
ElyOffice/tasks/reviews/C11.2-r2.md
T

1.8 KiB

FAIL

crates/ely-pdf-engine/shim/ely_insert.c:75 — 字段重名处理用固定 256 字节缓冲区,截断后生成相同候选名称,循环永久占住 worker(PDF-02)。复现:两份有效 PDF 各有一个同名字段,名称为 255 个 ASCII 字符;从文件插入第二份时,追加的序号始终被截掉。真实 worker 的 OPEN 正常返回,INSERT 超过 3 秒仍无回复,后续渲染、编辑和保存均排在该请求之后。隔离副本扩大缓冲区后,同一探针立即完成;现有回归只覆盖短字段名。方向:按完整字段名与序号动态分配候选字符串,保证每次冲突都产生不同名称,并增加长名称冲突的有界完成测试。

crates/ely-pdf-engine/shim/ely_insert.c:108 — 插入只并入字段树,遗漏源 AcroForm 的默认外观 /DA 与字体资源 /DR,已存在的表单内容在合并后静默改变外观(PDF-02、FILE-07)。复现:源页含值为 HELLO 的文本字段,字段继承 AcroForm 的 /DA (/Custom 24 Tf 1 0 0 rg) 与 /DR/Font/Custom;插入另一份 PDF 并保存后,目标 AcroForm 只剩 /Fields。用本次构建的真实 worker 渲染,源页红色像素为 326、文字像素为 524,合并页红色像素为 0、文字像素为 143,24 pt 红字变成较小黑字。隔离副本迁移默认外观与资源后,两页均为 326/524;现有字段回归仅检查名称与值。方向:迁移字段依赖的默认外观和资源,处理目标资源名称冲突并重绑引用,增加保存重开后的字段外观回归。

crates/ely-pdf-engine/shim/ely_insert.c:60 — 注释 “Joins field to the form; a taken name gets a number.” 共 11 词,超过 agents.md 的十词上限。复现:运行 python3 tests/scripts/comments.py,检查以此行报 FAIL。方向:将该注释缩至十词以内,并运行注释检查。