]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 25 Jan 2015 17:32:32 +0000 (17:32 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 25 Jan 2015 17:32:32 +0000 (17:32 +0000)
coders/miff.c
coders/pdb.c
coders/vicar.c

index 8e8ea04290706e8a436eab370adffe66318c9e83..e517296efbb75543f068691109340a3bb69cd998 100644 (file)
@@ -1377,6 +1377,9 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
           bzip_info.avail_out=(unsigned int) (packet_size*image->columns);
           do
           {
+            int
+              code;
+
             if (bzip_info.avail_in == 0)
               {
                 bzip_info.next_in=(char *) compress_pixels;
@@ -1389,7 +1392,13 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
                 bzip_info.avail_in=(unsigned int) ReadBlob(image,length,
                   (unsigned char *) bzip_info.next_in);
               }
-            if (BZ2_bzDecompress(&bzip_info) == BZ_STREAM_END)
+            code=BZ2_bzDecompress(&bzip_info);
+            if (code < 0)
+              {
+                status=MagickFalse;
+                break;
+              }
+            if (code == BZ_STREAM_END)
               break;
           } while (bzip_info.avail_out != 0);
           (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
@@ -1439,6 +1448,9 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
           zip_info.avail_out=(uInt) (packet_size*image->columns);
           do
           {
+            int
+              code;
+
             if (zip_info.avail_in == 0)
               {
                 zip_info.next_in=compress_pixels;
@@ -1451,7 +1463,13 @@ static Image *ReadMIFFImage(const ImageInfo *image_info,
                 zip_info.avail_in=(unsigned int) ReadBlob(image,length,
                   zip_info.next_in);
               }
-            if (inflate(&zip_info,Z_SYNC_FLUSH) == Z_STREAM_END)
+            code=inflate(&zip_info,Z_SYNC_FLUSH);
+            if (code < 0)
+              {
+                status=MagickFalse;
+                break;
+              }
+            if (code == Z_STREAM_END)
               break;
           } while (zip_info.avail_out != 0);
           (void) ImportQuantumPixels(image,(CacheView *) NULL,quantum_info,
index 2a63a0ab0aba8951e875c9c075c3015bace9a12f..f482c7769e12cd909a108c6e86685371bf63aef0 100644 (file)
@@ -369,7 +369,15 @@ static Image *ReadPDBImage(const ImageInfo *image_info,ExceptionInfo *exception)
         ThrowReaderException(CorruptImageError,"CorruptImage");
     }
   num_pad_bytes = (size_t) (img_offset - TellBlob( image ));
-  while (num_pad_bytes--) ReadBlobByte( image );
+  while (num_pad_bytes-- != 0)
+  {
+    int
+      c;
+
+    c=ReadBlobByte(image);
+    if (c == EOF)
+      break;
+  }
   /*
     Read image header.
   */
index 345c6c5f523dbbb96e4e3ead18b9d1be9bcc10d3..83fdfb0192993261eb77ae1bb2007fd5f35577f2 100644 (file)
@@ -276,6 +276,8 @@ static Image *ReadVICARImage(const ImageInfo *image_info,
   while (count < (ssize_t) length)
   {
     c=ReadBlobByte(image);
+    if (c == EOF)
+      break;
     count++;
   }
   if ((image->columns == 0) || (image->rows == 0))