]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Wed, 24 Sep 2014 00:21:44 +0000 (00:21 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Wed, 24 Sep 2014 00:21:44 +0000 (00:21 +0000)
MagickCore/blob.c

index a9f623f676db9136660af442f70ede39af4bbf0e..abb367d9f34287f843d2d9dc6cb426c361023265 100644 (file)
@@ -747,16 +747,21 @@ MagickPrivate void DisassociateBlob(Image *image)
   assert(image->blob != (BlobInfo *) NULL);
   assert(image->blob->signature == MagickSignature);
   clone=MagickFalse;
+  LockSemaphoreInfo(image->semaphore);
   LockSemaphoreInfo(image->blob->semaphore);
   assert(image->blob->reference_count >= 0);
   if (image->blob->reference_count > 1)
     clone=MagickTrue;
   UnlockSemaphoreInfo(image->blob->semaphore);
   if (clone == MagickFalse)
-    return;
+    {
+      UnlockSemaphoreInfo(image->semaphore);
+      return;
+    }
   blob=CloneBlobInfo(image->blob);
   DestroyBlob(image);
   image->blob=blob;
+  UnlockSemaphoreInfo(image->semaphore);
 }
 \f
 /*