]> granicus.if.org Git - imagemagick/commitdiff
GetImageMask returns NULL when the image does not have the specified mask.
authorDirk Lemstra <dirk@git.imagemagick.org>
Sun, 8 Jul 2018 14:32:00 +0000 (16:32 +0200)
committerDirk Lemstra <dirk@git.imagemagick.org>
Sun, 8 Jul 2018 14:32:00 +0000 (16:32 +0200)
MagickCore/image.c

index fa262378d73878c5bef503f80c0f3c9f72396036..d4d5000ce745a23329d99162418b1bbe6a47c7f5 100644 (file)
@@ -1453,6 +1453,24 @@ MagickExport Image *GetImageMask(const Image *image,const PixelMask type,
   if (image->debug != MagickFalse)
     (void) LogMagickEvent(TraceEvent,GetMagickModule(),"...");
   assert(image->signature == MagickCoreSignature);
+  switch (type)
+  {
+    case ReadPixelMask:
+    {
+      if ((image->channels & ReadMaskChannel) == 0)
+        return((Image *) NULL);
+    }
+    case WritePixelMask:
+    {
+      if ((image->channels & WriteMaskChannel) == 0)
+        return((Image *) NULL);
+    }
+    default:
+    {
+      if ((image->channels & CompositeMaskChannel) == 0)
+        return((Image *) NULL);
+    }
+  }
   mask_image=AcquireImage((ImageInfo *) NULL,exception);
   status=SetImageExtent(mask_image,image->columns,image->rows,exception);
   if (status == MagickFalse)