]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 27 Apr 2014 19:57:46 +0000 (19:57 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 27 Apr 2014 19:57:46 +0000 (19:57 +0000)
MagickCore/quantum-export.c
coders/miff.c

index 0ba781d6763f3a1c4b1116f2a13b258700d55a9f..a3bf72b81dba02b7553738a0c76d1f79458feec8 100644 (file)
@@ -190,6 +190,8 @@ static inline unsigned char *PopQuantumPixel(QuantumInfo *quantum_info,
     if (quantum_bits > quantum_info->state.bits)
       quantum_bits=quantum_info->state.bits;
     i-=(ssize_t) quantum_bits;
+    if (i < 0)
+      i=0;
     if (quantum_info->state.bits == 8UL)
       *pixels='\0';
     quantum_info->state.bits-=quantum_bits;
index fd1cce41e6f9e7cda55fe8362d543dfd74eb87f6..7b37d1eac37d970ed8e49022c3b752ebf7b7e0d5 100644 (file)
@@ -1717,18 +1717,22 @@ static unsigned char *PopRunlengthPacket(Image *image,unsigned char *pixels,
 {
   if (image->storage_class != DirectClass)
     {
+      unsigned int
+        value;
+
+      value=(unsigned int) ClampToQuantum(pixel->index);
       switch (image->depth)
       {
         case 32:
         {
-          *pixels++=(unsigned char) ((size_t) pixel->index >> 24);
-          *pixels++=(unsigned char) ((size_t) pixel->index >> 16);
+          *pixels++=(unsigned char) (value >> 24);
+          *pixels++=(unsigned char) (value >> 16);
         }
         case 16:
-          *pixels++=(unsigned char) ((size_t) pixel->index >> 8);
+          *pixels++=(unsigned char) (value >> 8);
         case 8:
         {
-          *pixels++=(unsigned char) pixel->index;
+          *pixels++=(unsigned char) value;
           break;
         }
         default: