1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-05-31 04:48:14 +00:00

LibGfx: Make all image decoders reject image sizes above 16384 pixels

Let's just say no to shenanigans by capping images at 16384 pixels both
wide and tall. If a day comes in the future where we need to handle
images larger than this, we can deal with it then.
This commit is contained in:
Andreas Kling 2020-12-25 00:19:06 +01:00
parent a5f4cb78cf
commit edf01803cd
7 changed files with 38 additions and 10 deletions

View file

@ -518,6 +518,11 @@ static bool decode_bmp_core_dib(BMPLoadingContext& context, Streamer& streamer)
return false;
}
if (static_cast<size_t>(core.width) > maximum_width_for_decoded_images || static_cast<size_t>(abs(core.height)) > maximum_height_for_decoded_images) {
dbgln("This BMP is too large for comfort: {}x{}", core.width, abs(core.height));
return false;
}
auto color_planes = streamer.read_u16();
if (color_planes != 1) {
IF_BMP_DEBUG(dbg() << "BMP has an invalid number of color planes: " << color_planes);