vectorcraft/crates
bflatastic 17d2493616 Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8)
hayro-syntax 0.8.0 reads arrays and dictionaries 64 deep and no deeper wherever they are (the
file's text, object streams, the content of pages, forms, patterns, glyphs and masks), walks the
page tree without recursion and follows a chain of object streams once: what 0.7.2 overflowed
the stack on. hayro-interpret 0.8.0 comes with it (a new device interface: the importer's device
takes it as before). Our raw pre-scan of the file's text and page content goes: the reader's own
cap covers more, and the scan miscounted the bytes of unfiltered binary streams.

What 0.8.0 still builds by recursion with no cap is refused when the file opens: functions and
colour spaces built on themselves or on one another more than 16 deep, and calculator functions
whose procedures nest more than 64 deep. The import runs on a 16 MB thread, as the SVG importer
does.

hayro-syntax 0.8 turns on flate2's zlib-rs backend, which the whole app then deflates with: a
compressed native file is the same gzip stream as before (header and data), but its deflate
blocks now depend on how the data is fed, so the streaming test checks the header and the
unpacked data instead of the bytes.
2026-10-14 10:13:45 +07:00
..
affinity Fix #1704: an Affinity document's pixel layers share one pixel allowance 2026-10-14 09:00:42 +07:00
brush #1172: share an object's appearance with its undo history until it changes 2026-10-11 23:27:21 +07:00
cad Importers: nesting is capped, so a deeply nested file can't overflow the stack 2026-10-14 07:37:52 +07:00
color ICC profiles written here have their tags 4-byte aligned 2026-10-13 10:52:38 +07:00
doc Fix #1717: sampling and recolouring check an image's RGBA size before decoding 2026-10-14 08:47:10 +07:00
effects Fix #1724: 3D effects on a nonzero compound path keep the area its contours fill 2026-10-14 09:02:28 +07:00
engine Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8) 2026-10-14 10:13:45 +07:00
eps Fix #1714: the EPS interpreter frees arrays and dictionaries that hold themselves 2026-10-14 09:00:42 +07:00
format Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8) 2026-10-14 10:13:45 +07:00
geom PDF/EPS import: a clip only counts as covering the page when it does 2026-10-13 08:51:40 +07:00
mcp MCP: a connection holding bytes nobody asked for is replaced before the request is sent 2026-10-14 04:31:44 +07:00
metafile Importers: nesting is capped, so a deeply nested file can't overflow the stack 2026-10-14 07:37:52 +07:00
pathops Fix #1462: Split Into Grid has its row and column sizes, gutters, totals, Add Guides and Preview 2026-10-13 02:48:36 +07:00
pdf Importers: PDF nesting inside compressed streams no longer crashes (hayro 0.8) 2026-10-14 10:13:45 +07:00
plugins Plug-ins: numeric defaults stay in their declared range 2026-10-13 02:21:35 +07:00
render Fix #1683: a template layer dims its images by Dim Images, not the whole layer 2026-10-14 09:02:28 +07:00
scriptcheck Scripts: Check Script… reports what a .jsx script needs and does, without running it 2026-10-13 13:36:41 +07:00
svg fix(svg): memoize descendant selector matching to stop combinatorial backtracking (#1703) 2026-10-14 08:01:50 +07:00
testkit Fix #1387: a .ai whose PDF part is only text opens from it 2026-10-12 19:50:53 +07:00
text Fonts: a missing font's name is looked up once until fonts are added or rescanned 2026-10-14 06:01:10 +07:00
three-d Fix #1724: 3D effects on a nonzero compound path keep the area its contours fill 2026-10-14 09:02:28 +07:00
tools Marquee guide selection: one shared helper for both selection tools 2026-10-14 08:01:50 +07:00
trace Image Trace: gradients grown over noise and soft rims 2026-10-14 07:14:07 +07:00
ui-egui Fix #1685: a save or export that fails is reported in a dialog that stays 2026-10-14 09:03:51 +07:00