]> granicus.if.org Git - imagemagick/commitdiff
...
authorCristy <urban-warrior@imagemagick.org>
Sat, 4 Feb 2017 23:14:51 +0000 (18:14 -0500)
committerCristy <urban-warrior@imagemagick.org>
Sat, 4 Feb 2017 23:14:51 +0000 (18:14 -0500)
MagickCore/pixel-accessor.h
MagickCore/pixel.c

index 3ca148a70003703e5c42cbd07df350ac68430bde..d939c032ed80087e7c182750e920ffabb09cefee 100644 (file)
@@ -18,6 +18,7 @@
 #ifndef MAGICKCORE_PIXEL_ACCESSOR_H
 #define MAGICKCORE_PIXEL_ACCESSOR_H
 
+#include <assert.h>
 #include "MagickCore/cache.h"
 #include "MagickCore/cache-view.h"
 #include "MagickCore/color.h"
@@ -691,6 +692,8 @@ static inline void SetPixelChannelAttributes(
   const Image *magick_restrict image,const PixelChannel channel,
   const PixelTrait traits,const ssize_t offset)
 {
+  assert((ssize_t) channel < MaxPixelChannels);
+  assert(offset < MaxPixelChannels);
   image->channel_map[offset].channel=channel;
   image->channel_map[channel].offset=offset;
   image->channel_map[channel].traits=traits;
index fb6c00f7bd5ab5eecdfcfe6adaec38f4c5f39f49..49080dcd6cedca052d3a0a90adbff595ad72f841 100644 (file)
@@ -4443,6 +4443,11 @@ MagickExport void InitializePixelChannelMap(Image *image)
     }
   if (image->colorspace == CMYKColorspace)
     SetPixelChannelAttributes(image,BlackPixelChannel,trait,n++);
+  for (i=0; i < (ssize_t) image->number_meta_channels; i++)
+  {
+    SetPixelChannelAttributes(image,(PixelChannel) n,UpdatePixelTrait,n);
+    n++;
+  }
   if (image->alpha_trait != UndefinedPixelTrait)
     SetPixelChannelAttributes(image,AlphaPixelChannel,CopyPixelTrait,n++);
   if (image->storage_class == PseudoClass)
@@ -4451,12 +4456,6 @@ MagickExport void InitializePixelChannelMap(Image *image)
     SetPixelChannelAttributes(image,ReadMaskPixelChannel,CopyPixelTrait,n++);
   if (image->write_mask != MagickFalse)
     SetPixelChannelAttributes(image,WriteMaskPixelChannel,CopyPixelTrait,n++);
-  assert((n+image->number_meta_channels) < MaxPixelChannels);
-  for (i=0; i < (ssize_t) image->number_meta_channels; i++)
-  {
-    SetPixelChannelAttributes(image,(PixelChannel) n,UpdatePixelTrait,n);
-    n++;
-  }
   image->number_channels=(size_t) n;
   if (image->debug != MagickFalse)
     LogPixelChannels(image);