Forráskód Böngészése

WebP/Lossy: Check that file contains enough data for first partition

Nico Weber 2 éve
szülő
commit
74b50c046b

+ 3 - 0
Userland/Libraries/LibGfx/ImageFormats/WebPLoaderLossy.cpp

@@ -98,6 +98,9 @@ ErrorOr<VP8Header> decode_webp_chunk_VP8_header(ReadonlyBytes vp8_data)
     dbgln_if(WEBP_DEBUG, "version {}, show_frame {}, size_of_first_partition {}, width {}, horizontal_scale {}, height {}, vertical_scale {}",
         version, show_frame, size_of_first_partition, width, horizontal_scale, height, vertical_scale);
 
+    if (vp8_data.size() < 10 + size_of_first_partition)
+        return Error::from_string_literal("WebPImageDecoderPlugin: 'VP8 ' chunk too small for full first partition");
+
     return VP8Header { version, show_frame, size_of_first_partition, width, horizontal_scale, height, vertical_scale, vp8_data.slice(10, size_of_first_partition), vp8_data.slice(10 + size_of_first_partition) };
 }