]> granicus.if.org Git - imagemagick/commitdiff
Fixed memory leak.
authorDirk Lemstra <dirk@git.imagemagick.org>
Sun, 18 Feb 2018 13:27:23 +0000 (14:27 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Sun, 18 Feb 2018 13:28:38 +0000 (14:28 +0100)
MagickCore/blob.c

index db5dbf227faf48aa7fc4955cd094c5672538d25d..c0934cda89f260fdb69bdd04cd1e23022ab9fb87 100644 (file)
@@ -1912,7 +1912,9 @@ MagickExport void *ImageToBlob(const ImageInfo *image_info,
           status=WriteImage(blob_info,image,exception);
           *length=image->blob->length;
           blob=DetachBlob(image->blob);
-          if (status == MagickFalse)
+          if (blob == (void *) NULL)
+            blob_info->blob=RelinquishMagickMemory(blob_info->blob);
+          else if (status == MagickFalse)
             blob=RelinquishMagickMemory(blob);
           else
             blob=ResizeQuantumMemory(blob,*length+1,sizeof(unsigned char));
@@ -2308,7 +2310,9 @@ MagickExport void *ImagesToBlob(const ImageInfo *image_info,Image *images,
           status=WriteImages(clone_info,images,images->filename,exception);
           *length=images->blob->length;
           blob=DetachBlob(images->blob);
-          if (status == MagickFalse)
+          if (blob == (void *) NULL)
+            clone_info->blob=RelinquishMagickMemory(clone_info->blob);
+          else if (status == MagickFalse)
             blob=RelinquishMagickMemory(blob);
           else
             blob=ResizeQuantumMemory(blob,*length+1,sizeof(unsigned char));