Skip to content

1.14.2 — Hardened parsing for pathological PDFs

Choose a tag to compare

@abimaelmartell abimaelmartell released this 13 Aug 21:23
4bee4f9

Packages

All packages were built from source checkpoint 4bee4f9.

Node platform packages

Highlights

  • Caps Form XObject expansion, CID /W ranges, Encoding/ToUnicode CMaps, content-stream decode, detector Tj/TJ lookback, and disjoint-rect clustering so crafted PDFs cannot force unbounded CPU or memory (#370, #372, #373, #375, #379, #380, #381).
  • Form XObjects now track the text line matrix and honor T* / TL / ' / " / Tc / Tw, so nested form text keeps the right spacing (#369).
  • Small-caps runs merge instead of being read as extra table columns (#371).

Changes since 1.14.1

Source: f4aab3b...4bee4f9

Resource bounds

  • Bound Form XObject expansion per page (#370)
  • Bound CID /W range expansion (#372)
  • Cap content-stream decode before allocating operators (#373)
  • Bound Encoding CMap cidrange expansion (#375)
  • Bound ToUnicode bfrange expansion during subset remap (#379)
  • Bound detector Tj/TJ operand lookback to the previous operator (#380)
  • Bound disjoint-rect table clustering so overlap tests stay subquadratic (#381)

Extraction quality

  • Track the text line matrix and handle T* / TL / ' / " / Tc / Tw in Form XObjects (#369)
  • Merge small-caps runs so they stop reading as table columns (#371)