mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 16:07:47 +00:00
LibGfx/ILBM: Ensure CMAP chunk size matches expected value
The color map should be 3 bytes per pixel and should contain `2^nPlanes` pixels. We now return an error if the color map isn't the size we expect.
This commit is contained in:
parent
61eb754f63
commit
f56ae8c0e9
3 changed files with 4 additions and 0 deletions
|
@ -298,6 +298,9 @@ static ErrorOr<void> decode_iff_chunks(ILBMLoadingContext& context)
|
|||
while (!chunks.is_empty()) {
|
||||
auto chunk = TRY(decode_iff_advance_chunk(chunks));
|
||||
if (chunk.type == FourCC("CMAP")) {
|
||||
if (chunk.data.size() != (1ul << context.bm_header.planes) * 3)
|
||||
return Error::from_string_literal("Invalid CMAP chunk size");
|
||||
|
||||
context.color_table = TRY(decode_cmap_chunk(chunk));
|
||||
} else if (chunk.type == FourCC("BODY")) {
|
||||
if (context.color_table.is_empty())
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue