mirror of
https://git.citron-emu.org/citron/emulator
synced 2025-12-19 02:33:32 +00:00
add: STB Image Overflow Patch
This commit is contained in:
22
patches/stb_image-overflow-fix.patch
Normal file
22
patches/stb_image-overflow-fix.patch
Normal file
@@ -0,0 +1,22 @@
|
||||
diff --git externals/stb/stb_image.h externals/stb/stb_image.h
|
||||
index 5e807a0a6..725d0ec9e 100644
|
||||
--- externals/stb/stb_image.h
|
||||
+++ externals/stb/stb_image.h
|
||||
@@ -5079,7 +5079,7 @@ static void stbi__de_iphone(stbi__png *z)
|
||||
static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
|
||||
{
|
||||
stbi_uc palette[1024], pal_img_n=0;
|
||||
- stbi_uc has_trans=0, tc[3]={0};
|
||||
+ stbi_uc has_trans=0, tc[4]={0};
|
||||
stbi__uint16 tc16[3];
|
||||
stbi__uint32 ioff=0, idata_limit=0, i, pal_len=0;
|
||||
int first=1,k,interlace=0, color=0, is_iphone=0;
|
||||
@@ -5163,7 +5163,7 @@ static int stbi__parse_png_file(stbi__png *z, int scan, int req_comp)
|
||||
if (z->depth == 16) {
|
||||
for (k = 0; k < s->img_n; ++k) tc16[k] = (stbi__uint16)stbi__get16be(s); // copy the values as-is
|
||||
} else {
|
||||
- for (k = 0; k < s->img_n; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger
|
||||
+ for (k = 0; k < s->img_n && k < 4; ++k) tc[k] = (stbi_uc)(stbi__get16be(s) & 255) * stbi__depth_scale_table[z->depth]; // non 8-bit images will be larger
|
||||
}
|
||||
}
|
||||
break;
|
||||
Reference in New Issue
Block a user