Skip to content

Commit

Permalink
Merge pull request #8343 from radarhere/jpeg2000_colorspace
Browse files Browse the repository at this point in the history
  • Loading branch information
hugovk authored Sep 3, 2024
2 parents 59f37db + 55f4939 commit d636b80
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 3 deletions.
9 changes: 9 additions & 0 deletions Tests/test_file_jpeg2k.py
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,15 @@ def test_restricted_icc_profile() -> None:
ImageFile.LOAD_TRUNCATED_IMAGES = False


@pytest.mark.skipif(
not os.path.exists(EXTRA_DIR), reason="Extra image files not installed"
)
def test_unknown_colorspace() -> None:
with Image.open(f"{EXTRA_DIR}/file8.jp2") as im:
im.load()
assert im.mode == "L"


def test_header_errors() -> None:
for path in (
"Tests/images/invalid_header_length.jp2",
Expand Down
5 changes: 2 additions & 3 deletions src/libImaging/Jpeg2KDecode.c
Original file line number Diff line number Diff line change
Expand Up @@ -698,8 +698,7 @@ j2k_decode_entry(Imaging im, ImagingCodecState state) {
}

/* Check that this image is something we can handle */
if (image->numcomps < 1 || image->numcomps > 4 ||
image->color_space == OPJ_CLRSPC_UNKNOWN) {
if (image->numcomps < 1 || image->numcomps > 4) {
state->errcode = IMAGING_CODEC_BROKEN;
state->state = J2K_STATE_FAILED;
goto quick_exit;
Expand Down Expand Up @@ -744,7 +743,7 @@ j2k_decode_entry(Imaging im, ImagingCodecState state) {
/* Find the correct unpacker */
color_space = image->color_space;

if (color_space == OPJ_CLRSPC_UNSPECIFIED) {
if (color_space == OPJ_CLRSPC_UNKNOWN || color_space == OPJ_CLRSPC_UNSPECIFIED) {
switch (image->numcomps) {
case 1:
case 2:
Expand Down

0 comments on commit d636b80

Please sign in to comment.