Files
photocraft/crates/codecs/tests
Dylan M. Taylor 3225307e57 codecs: admit animated GIF screens, sparse RLE BMPs and icon PNG profiles (#10979)
* 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
2026-11-03 20:54:58 -05:00
..