Files
pdfcraft/crates
mtlcl410andClaude Opus 5.5 56ce7661d6 M8: one search budget per metadata scrub, bounded entity scan, fail closed for unread forms (#2448)
Review by Losminek on #2539:
- The work cap was checked per value, so very many small /Info or XMP
  values could add up without bound. One budget now covers the whole
  scrub; past it every further entry or packet counts as matching
  (fail-closed). Identical removed runs are searched once.
- unescape looked for ';' through the rest of the text before checking
  the 12-byte entity limit, so a packet of bare '&'s was quadratic. It
  now looks only at the next 13 characters (200,000 '&': 943 ms -> 5 ms).
- A form XObject removed whole past the depth limit, or when its stream
  doesn't decode, never had its text read; both paths now set
  removed_cut so the metadata check clears everything instead of
  searching incomplete text.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-30 13:58:49 +08:00
..
2026-10-27 23:12:51 +00:00
2026-10-29 02:35:58 +01:00
2026-10-29 02:34:57 +01:00
2026-10-27 00:34:32 +00:00
…
2026-10-29 02:36:20 +01:00