From: Cristy Date: Sat, 4 Feb 2017 23:14:51 +0000 (-0500) Subject: ... X-Git-Tag: 7.0.4-8~39 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=865198443564f479fd098cffd1a2b5c36b8ce2ba;p=imagemagick ... --- diff --git a/MagickCore/pixel-accessor.h b/MagickCore/pixel-accessor.h index 3ca148a70..d939c032e 100644 --- a/MagickCore/pixel-accessor.h +++ b/MagickCore/pixel-accessor.h @@ -18,6 +18,7 @@ #ifndef MAGICKCORE_PIXEL_ACCESSOR_H #define MAGICKCORE_PIXEL_ACCESSOR_H +#include #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; diff --git a/MagickCore/pixel.c b/MagickCore/pixel.c index fb6c00f7b..49080dcd6 100644 --- a/MagickCore/pixel.c +++ b/MagickCore/pixel.c @@ -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);