ExPikaPaka
4c74d84b94
Fail cleanly on a truncated or corrupt PNG ( #16014 )
...
libpng reports a bad file by longjmp()ing back to the buffer set with
setjmp(), and the frame it lands in must own nothing that needs
destroying: with exceptions enabled MSVC unwinds the stack as part of
longjmp, and returning from a frame unwound that way crashes. It did on
Windows while working everywhere else.
The read callback also returned quietly on a short read, leaving libpng
to decode whatever happened to be in the output buffer.
The calls that can fail now sit in two helpers that own nothing but
pointers, so every C++ object the decoders need stays in their own
frames, and a short read is reported through png_error().
2026-10-09 11:52:55 +08:00
..
2026-10-09 11:52:55 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 14:19:47 +08:00
2026-10-05 16:47:17 +08:00
2026-10-04 14:50:15 +08:00
2026-10-07 14:22:32 +08:00
2026-10-05 16:47:17 +08:00
2026-10-04 14:50:15 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 16:47:17 +08:00
2026-10-07 14:22:32 +08:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 16:47:17 +08:00
2026-10-08 13:40:36 +08:00
2026-10-07 15:51:49 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-04 14:50:15 +08:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-07 14:22:32 +08:00
2026-10-05 21:49:32 -03:00
2026-10-05 16:47:17 +08:00
2026-10-04 14:50:15 +08:00
2026-10-07 14:22:32 +08:00
2026-10-08 16:00:28 -03:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-08 09:43:46 -03:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2025-12-08 22:42:11 +08:00
2026-10-09 11:52:55 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 14:19:47 +08:00
2026-10-08 13:51:50 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 18:29:35 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-03 13:45:21 +08:00
2026-10-08 18:10:37 -03:00
2026-10-05 14:19:47 +08:00
2026-10-03 13:45:21 +08:00
2026-10-07 14:22:32 +08:00
2026-10-05 16:47:17 +08:00
2026-10-03 13:45:21 +08:00
2026-10-04 14:50:15 +08:00
2026-10-03 13:29:55 -03:00
2026-10-03 13:45:21 +08:00
2026-10-07 14:22:32 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 16:47:17 +08:00
2026-10-05 16:47:17 +08:00