Blob Blame History Raw
Index: ImageMagick/branches/ImageMagick-6/coders/psd.c
===================================================================
--- a/ImageMagick/branches/ImageMagick-6/coders/psd.c
+++ b/ImageMagick/branches/ImageMagick-6/coders/psd.c
@@ -270,5 +270,5 @@
   for (i=0; (packets > 1) && (i < (ssize_t) number_pixels); )
   {
-    length=(*compact_pixels++);
+    length=(size_t) (*compact_pixels++);
     packets--;
     if (length == 128)
@@ -277,4 +277,6 @@
       {
         length=256-length+1;
+        if ((ssize_t) length + i > (ssize_t) number_pixels)
+          length=number_pixels-(size_t) i;
         pixel=(*compact_pixels++);
         packets--;
@@ -323,4 +325,6 @@
       }
     length++;
+    if ((ssize_t) length + i > (ssize_t) number_pixels)
+      length=number_pixels-(size_t) i;
     for (j=0; j < (ssize_t) length; j++)
     {