Files
pdfcraft/vendor/hayro-jbig2/README.md
Brandon ThomasandClaude Opus 5.5 6e90710e4b Never crash: JBIG2 images can't decode billions of pixels
The nightly fuzz job found a JBIG2 symbol dictionary that decoded for
minutes: each bitmap side may be 65535, and up to 65535 symbols are decoded
pixel by pixel. Vendored hayro-jbig2 0.3.0 with two bounds: at most 2^28
pixels per bitmap (also the page bitmap, halftone grid and grayscale image),
and at most 2^26 symbol pixels per dictionary. The finding now finishes in
about a second. Synthetic regression test (a 65535 x 65535 page and region
behind a small /Width and /Height); the corpus sweep shows 0 regressions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-05 08:28:52 -04:00

1.2 KiB

hayro-jbig2

Crates.io Documentation

A memory-safe, pure-Rust JBIG2 decoder.

hayro-jbig2 decodes JBIG2 images as specified in ITU-T T.88 (also known as ISO/IEC 14492). JBIG2 is a bi-level image compression standard commonly used in PDF documents for compressing scanned text documents.

Status

This crate is currently under development.

Safety

By default, the crate has the simd feature enabled, which uses the fearless_simd crate to accelerate decoding of JBIG2 images with halftoning. If you want to eliminate any usage of unsafe in this crate as well as its dependencies, you can simply disable this feature and still get very good performance in the vast majority of cases. Unsafe code is forbidden via a crate-level attribute.

License

Licensed under either of

at your option.