diff --git a/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp b/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp index 4da0d1b91db..d8462161c9a 100644 --- a/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp +++ b/Userland/Libraries/LibGfx/ImageFormats/JPEG2000Loader.cpp @@ -459,6 +459,7 @@ struct TilePartData { }; struct TileData { + Optional cod; Optional qcd; Vector qccs; Vector tile_parts; @@ -652,7 +653,11 @@ static ErrorOr parse_codestream_tile_header(JPEG2000LoadingContext& contex case J2K_PLT: case J2K_COM: { auto marker = TRY(read_marker_at_cursor(context)); - if (marker.marker == J2K_QCD) { + if (marker.marker == J2K_COD) { + if (tile.cod.has_value()) + return Error::from_string_literal("JPEG2000ImageDecoderPlugin: Multiple COD markers in tile header"); + tile.cod = TRY(read_coding_style_default(marker.data.value())); + } else if (marker.marker == J2K_QCD) { if (tile.qcd.has_value()) return Error::from_string_literal("JPEG2000ImageDecoderPlugin: Multiple QCD markers in tile header"); tile.qcd = TRY(read_quantization_default(marker.data.value()));