]> granicus.if.org Git - imagemagick/commitdiff
Fixed memory leaks (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=6075).
authorDirk Lemstra <dirk@git.imagemagick.org>
Sun, 4 Mar 2018 22:18:37 +0000 (23:18 +0100)
committerDirk Lemstra <dirk@git.imagemagick.org>
Sun, 4 Mar 2018 22:18:37 +0000 (23:18 +0100)
Magick++/lib/Image.cpp

index a711b30276510b896ecd6c85044e5d5ba27317ed..af953aedc06daf89e278665fecf68bf465718222 100644 (file)
@@ -4877,6 +4877,8 @@ void Magick::Image::write(Blob *blob_)
   data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo);
   if (length > 0)
     blob_->updateNoCopy(data,length,Blob::MallocAllocator);
+  else
+    data=RelinquishMagickMemory(data);
   ThrowImageException;
 }
 
@@ -4894,6 +4896,8 @@ void Magick::Image::write(Blob *blob_,const std::string &magick_)
   data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo);
   if (length > 0)
     blob_->updateNoCopy(data,length,Blob::MallocAllocator);
+  else
+    data=RelinquishMagickMemory(data);
   ThrowImageException;
 }
 
@@ -4913,6 +4917,8 @@ void Magick::Image::write(Blob *blob_,const std::string &magick_,
   data=ImagesToBlob(constImageInfo(),image(),&length,exceptionInfo);
   if (length > 0)
     blob_->updateNoCopy(data,length,Blob::MallocAllocator);
+  else
+    data=RelinquishMagickMemory(data);
   ThrowImageException;
 }