(void) ReadBlobLSBLong(image); /* Reserved byte */
}
}
- if ((bmp_info.compression != BI_RGB) &&
- ((MagickSizeType) bmp_info.file_size != GetBlobSize(image)))
+ if ((MagickSizeType) bmp_info.file_size > GetBlobSize(image))
(void) ThrowMagickException(exception,GetMagickModule(),CorruptImageError,
"LengthAndFilesizeDoNotMatch","`%s'",image->filename);
+ else
+ if ((MagickSizeType) bmp_info.file_size < GetBlobSize(image))
+ (void) ThrowMagickException(exception,GetMagickModule(),
+ CorruptImageWarning,"LengthAndFilesizeDoNotMatch","`%s'",
+ image->filename);
if (bmp_info.width <= 0)
ThrowReaderException(CorruptImageError,"NegativeOrZeroImageSize");
if (bmp_info.height == 0)
<message name="InsufficientImageDataInFile">
insufficient image data in file
</message>
+ <message name="LengthAndFilesizeDoNotMatch">
+ length and filesize do not match
+ </message>
<message name="SkipToSyncByte">
corrupt PCD image, skipping to sync byte
</message>
<message name="InsufficientImageDataInFile">
Pas assez de données d'image dans le fichier
</message>
+ <message name="LengthAndFilesizeDoNotMatch">
+ Longueur et taille du fichier ne correspondent pas
+ </message>
<message name="SkipToSyncByte">
Image PCD corrompue, saut à l'octet de synchronisation
</message>