]> granicus.if.org Git - imagemagick/commitdiff
Moved SetImageExtent and fixed memory leak when this returns false.
authorDirk Lemstra <dirk@git.imagemagick.org>
Thu, 5 Apr 2018 20:25:19 +0000 (22:25 +0200)
committerDirk Lemstra <dirk@git.imagemagick.org>
Thu, 5 Apr 2018 20:25:19 +0000 (22:25 +0200)
coders/jp2.c

index a793e1f6c97f1e802bab81befbe305bbf4a32893..b0fe1650842c80d5bbb102c5f476da30dbd47652 100644 (file)
@@ -399,9 +399,6 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception)
   image->columns=(size_t) jp2_image->comps[0].w;
   image->rows=(size_t) jp2_image->comps[0].h;
   image->depth=jp2_image->comps[0].prec;
-  status=SetImageExtent(image,image->columns,image->rows,exception);
-  if (status == MagickFalse)
-    return(DestroyImageList(image));
   image->compression=JPEG2000Compression;
   if (jp2_image->numcomps == 1)
     SetImageColorspace(image,GRAYColorspace,exception);
@@ -436,6 +433,13 @@ static Image *ReadJP2Image(const ImageInfo *image_info,ExceptionInfo *exception)
       opj_image_destroy(jp2_image);
       return(GetFirstImageInList(image));
     }
+  status=SetImageExtent(image,image->columns,image->rows,exception);
+  if (status == MagickFalse)
+    {
+      opj_destroy_codec(jp2_codec);
+      opj_image_destroy(jp2_image);
+      return(DestroyImageList(image));
+    }
   for (y=0; y < (ssize_t) image->rows; y++)
   {
     register Quantum