Fix breakage of 2fa0fc61f2d546c8b67e7c5a9cbc61d98e1f7af0 (#970)
authorEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 15:51:10 +0000 (17:51 +0200)
committerEven Rouault <even.rouault@spatialys.com>
Sat, 29 Jul 2017 15:51:10 +0000 (17:51 +0200)
src/bin/jp2/convert.c

index 730ab909f4b4611daab890f7c259deb4de5999b0..b3eb85816a229dedca9f56c5e8017de101163ca3 100644 (file)
@@ -1896,8 +1896,9 @@ static int are_comps_similar(opj_image_t * image)
     for (i = 1; i < image->numcomps; i++) {
         if (image->comps[0].dx != image->comps[i].dx ||
                 image->comps[0].dy != image->comps[i].dy ||
-                image->comps[0].prec != image->comps[i].prec ||
-                image->comps[0].sgnd != image->comps[i].sgnd) {
+                (i <= 2 &&
+                 (image->comps[0].prec != image->comps[i].prec ||
+                  image->comps[0].sgnd != image->comps[i].sgnd))) {
             return OPJ_FALSE;
         }
     }
@@ -1940,7 +1941,7 @@ int imagetopnm(opj_image_t * image, const char *outfile, int force_split)
         ncomp = 1;
     }
 
-    if ((force_split == 0) &&
+    if ((force_split == 0) && ncomp >= 2 &&
             are_comps_similar(image)) {
         fdest = fopen(outfile, "wb");