]> granicus.if.org Git - imagemagick/commitdiff
(no commit message)
authorcristy <urban-warrior@git.imagemagick.org>
Sun, 8 Apr 2012 15:45:03 +0000 (15:45 +0000)
committercristy <urban-warrior@git.imagemagick.org>
Sun, 8 Apr 2012 15:45:03 +0000 (15:45 +0000)
coders/bmp.c

index 9bf12b64579b093183452fe2e47fb540382aa982..f1057a53b3d739b4a6ad262b4d5ccc65f5740734 100644 (file)
@@ -903,9 +903,12 @@ static Image *ReadBMPImage(const ImageInfo *image_info,ExceptionInfo *exception)
     /*
       Read image data.
     */
-    offset=SeekBlob(image,start_position+bmp_info.offset_bits,SEEK_SET);
-    if (offset < 0)
-      ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+    if ((start_position+bmp_info.offset_bits) > TellBlob(image))
+      {
+        offset=SeekBlob(image,start_position+bmp_info.offset_bits,SEEK_SET);
+        if (offset < 0)
+          ThrowReaderException(CorruptImageError,"ImproperImageHeader");
+      }
     if (bmp_info.compression == BI_RLE4)
       bmp_info.bits_per_pixel<<=1;
     bytes_per_line=4*((image->columns*bmp_info.bits_per_pixel+31)/32);