mirror of
https://github.com/RGBCube/serenity
synced 2025-05-31 11:48:10 +00:00
LibGfx: Make PNGLoader not assert on images with missing chunks
Before this, images without IHDR, or palettized images with no or too small PLTE would lead to asserts. Found by running FuzzPNGLoader locally.
This commit is contained in:
parent
7db765bb73
commit
fe999d6281
1 changed files with 5 additions and 2 deletions
|
@ -747,8 +747,11 @@ static bool decode_png_bitmap(PNGLoadingContext& context)
|
|||
if (context.state >= PNGLoadingContext::State::BitmapDecoded)
|
||||
return true;
|
||||
|
||||
ASSERT(context.width >= 0);
|
||||
ASSERT(context.height >= 0);
|
||||
if (context.width == -1 || context.height == -1)
|
||||
return false; // Didn't see an IHDR chunk.
|
||||
|
||||
if (context.color_type == 3 && context.palette_data.size() < (1u << context.bit_depth))
|
||||
return false; // Didn't see an PLTE chunk for a palettized image, or not enough entries.
|
||||
|
||||
unsigned long srclen = context.compressed_data.size() - 6;
|
||||
unsigned long destlen = 0;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue