mirror of
https://github.com/storytold/photocraft.git
synced 2026-11-10 20:32:31 +00:00
* codecs: admit animated GIF screens, sparse RLE BMPs and icon PNG profiles - Animated GIF decoding (decode_gif_frames) skipped the logical-screen plausibility check the first-frame decode applies, although the backend initializes the whole screen before reading a frame. Both now share gif_plausible(). - RLE BMPs skipped the file-size plausibility check entirely, so a header-only file could make the decoder allocate and clear a multi-gigabyte canvas. Like a GIF's screen, 256 MiB of canvas is now free of data and the rest must be backed by the file. - The image crate's ICO decoder opens an embedded PNG with no limits, and png inflates an iCCP profile while the decoder is built. Icon PNG profiles are now inflated into a sink first and refused past 255 x 65519 bytes (or max_alloc), with a 64 MiB total across entries. * address review: visit each ICO profile chunk offset once