瀏覽代碼

LibGfx/JPEG: Don't return an error on empty icc profiles

An empty icc profile shouldn't stop our brave decoder.
Lucas CHOLLET 2 年之前
父節點
當前提交
243e91f5de
共有 1 個文件被更改,包括 5 次插入2 次删除
  1. 5 2
      Userland/Libraries/LibGfx/ImageFormats/JPEGLoader.cpp

+ 5 - 2
Userland/Libraries/LibGfx/ImageFormats/JPEGLoader.cpp

@@ -1030,8 +1030,11 @@ static ErrorOr<void> read_huffman_table(JPEGStream& stream, JPEGLoadingContext&
 static ErrorOr<void> read_icc_profile(JPEGStream& stream, JPEGLoadingContext& context, int bytes_to_read)
 {
     // https://www.color.org/technotes/ICC-Technote-ProfileEmbedding.pdf, page 5, "JFIF".
-    if (bytes_to_read <= 2)
-        return Error::from_string_literal("icc marker too small");
+    if (bytes_to_read <= 2) {
+        dbgln_if(JPEG_DEBUG, "icc marker too small");
+        TRY(stream.discard(bytes_to_read));
+        return {};
+    }
 
     auto chunk_sequence_number = TRY(stream.read_u8()); // 1-based
     auto number_of_chunks = TRY(stream.read_u8());