1.14.2 — Hardened parsing for pathological PDFs
Packages
All packages were built from source checkpoint 4bee4f9.
- Rust crate
pdf-inspector1.14.2 —cargo add pdf-inspector@1.14.2 - Python
pdf-inspector1.14.2 —pip install pdf-inspector==1.14.2 - Node
@firecrawl/pdf-inspector1.14.2 —npm install @firecrawl/pdf-inspector@1.14.2 - WebAssembly
@firecrawl/pdf-inspector-wasm1.14.2 —npm install @firecrawl/pdf-inspector-wasm@1.14.2
Node platform packages
Highlights
- Caps Form XObject expansion, CID
/Wranges, Encoding/ToUnicode CMaps, content-stream decode, detectorTj/TJlookback, 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
/Wrange expansion (#372) - Cap content-stream decode before allocating operators (#373)
- Bound Encoding CMap
cidrangeexpansion (#375) - Bound ToUnicode
bfrangeexpansion during subset remap (#379) - Bound detector
Tj/TJoperand lookback to the previous operator (#380) - Bound disjoint-rect table clustering so overlap tests stay subquadratic (#381)