From e6a24fcbb54f1d467192779df74941558f7b523e Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 24 Feb 2025 17:28:48 -0800 Subject: [PATCH] fix stbi__parse_png_file() reading too much bytes (thanks @miniupnp!) just "rewind" the bytes that have been read past the IEND chunk. --- src/video/stb_image.h | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/video/stb_image.h b/src/video/stb_image.h index f5fd6ca932..f22de1bbd7 100644 --- a/src/video/stb_image.h +++ b/src/video/stb_image.h @@ -5465,6 +5465,10 @@ static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp, unsigned i STBI_FREE(z->expanded); z->expanded = NULL; // end of PNG chunk, read and skip CRC stbi__get32be(s); + if (s->io.skip && s->img_buffer_end > s->img_buffer) { + // rewind the additional bytes that have been read to the buffer + (s->io.skip)(s->io_user_data, (int)(s->img_buffer - s->img_buffer_end)); + } return 1; }