]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Tue, 16 Dec 2014 18:59:44 +0000 (18:59 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Tue, 16 Dec 2014 18:59:44 +0000 (18:59 +0000)
MagickCore/colormap-private.h
coders/palm.c

index a57097ab021b6a11d8af11d16ee9922b3c5d5870..234458328eb28ecbbabbd573bc7a2d54745fc1da 100644 (file)
 extern "C" {
 #endif
 
-static inline ssize_t ConstrainColormapIndex(Image *image,const ssize_t index,
+static inline ssize_t ConstrainColormapIndex(Image *image,const size_t index,
   ExceptionInfo *exception)
 {
-  if ((index < 0) || (index >= (ssize_t) image->colors))
+  if ((index < 0) || (index >= (ssize_t) image->colors) ||
+      ((ssize_t) index < 0))
     {
       (void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
         "InvalidColormapIndex","`%s'",image->filename);
       return(0);
     }
-  return(index);
+  return((ssize_t) index);
 }
 
 #if defined(__cplusplus) || defined(c_plusplus)
index 97d201c1ce8500b6968c2f1ccc450caefd2a90c9..3caf1363d0fe820d7025fb705607fc199bc1fb63 100644 (file)
@@ -519,8 +519,10 @@ static Image *ReadPALMImage(const ImageInfo *image_info,
       }
     if (flags & PALM_HAS_TRANSPARENCY_FLAG)
       {
+        ssize_t index=ConstrainColormapIndex(image,(mask-transparentIndex),
+          exception);
         if (bits_per_pixel != 16)
-          transpix=image->colormap[mask-transparentIndex];
+          transpix=image->colormap[index];
         (void) TransparentPaintImage(image,&transpix,(Quantum) TransparentAlpha,
           MagickFalse,exception);
       }