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

LibGfx/ILBMLoader: Stop the decoding loop when plane buffer is full

This allows decoding files (eg. 24bit) that may have been badly encoded.
This commit is contained in:
Nicolas Ramz 2023-12-15 16:13:00 +01:00 committed by Sam Atkins
parent 19a2cc5634
commit caa13d3960

View file

@ -233,7 +233,8 @@ static ErrorOr<ByteBuffer> uncompress_byte_run(ReadonlyBytes data, ILBMLoadingCo
u32 index = 0;
u32 read_bytes = 0;
while (read_bytes < length) {
// Uncompressing is done once we've read all buffer or plane buffer has been fully filled
while (read_bytes < length && index < plane_data_size) {
auto const byte = static_cast<i8>(data[read_bytes++]);
if (byte >= -127 && byte <= -1) {
// read next byte