LibGfx/PNGLoader: Don't allow multiple consecutive IHDR chunks

This commit is contained in:
Tim Ledbetter 2023-10-07 10:02:32 +01:00 committed by Andreas Kling
parent 3250a424f0
commit bc6ae54b59
Notes: sideshowbarker 2024-07-17 01:06:10 +09:00

View file

@ -1237,8 +1237,12 @@ static ErrorOr<void> process_chunk(Streamer& streamer, PNGLoadingContext& contex
}
dbgln_if(PNG_DEBUG, "Chunk type: '{}', size: {}, crc: {:x}", chunk_type, chunk_size, chunk_crc);
if (chunk_type == "IHDR"sv)
if (chunk_type == "IHDR"sv) {
if (context.state >= PNGLoadingContext::IHDRDecoded)
return Error::from_string_literal("Multiple IHDR chunks");
return process_IHDR(chunk_data, context);
}
if (context.state < PNGLoadingContext::IHDRDecoded)
return Error::from_string_literal("IHDR is not the first chunk of the file");