mirror of
https://github.com/storytold/effectcraft.git
synced 2026-11-12 13:22:54 +00:00
* PSD: bounded zip errors, budgeted prediction row, row-bounded PackBits, channel checks before the result A failed inflate was formatted with Debug, which prints the whole partial output; only the status is kept. The 32-bit ZIP prediction scratch row was allocated outside the decode budget; it is charged now. PackBits packets were appended whole even past the row's end, growing the reserved plane; they are cut at the row. The composite and layer decodes allocated the document-sized result before checking that the channel data exists; the compression and raw/RLE lengths are checked first. * address review: check short ZIP composite data and the layer mask channel before allocating the result * address review: drop the channel prechecks that rejected PSDs the lenient decode accepts; keep the allocation bounds