From: cristy Date: Thu, 26 Feb 2015 23:05:17 +0000 (+0000) Subject: (no commit message) X-Git-Tag: 7.0.1-0~1224 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=311dbd742e510c51f68fcd1e294d0ce035f976f8;p=imagemagick --- diff --git a/coders/bmp.c b/coders/bmp.c index 508e530cb..217863fff 100644 --- a/coders/bmp.c +++ b/coders/bmp.c @@ -218,7 +218,10 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression, q=pixels+(size_t) image->columns*image->rows; for (y=0; y < (ssize_t) image->rows; ) { - if ((p < pixels) || (p >= q)) + MagickBooleanType + status; + + if ((p < pixels) || (p > q)) break; count=ReadBlobByte(image); if (count == EOF) @@ -249,6 +252,8 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression, Escape mode. */ count=ReadBlobByte(image); + if (count == EOF) + break; if (count == 0x01) return(MagickTrue); switch (count) @@ -306,12 +311,14 @@ static MagickBooleanType DecodeImage(Image *image,const size_t compression, } } } - if (SetImageProgress(image,LoadImageTag,(MagickOffsetType) y,image->rows) == MagickFalse) + status=SetImageProgress(image,LoadImageTag,(MagickOffsetType) y, + image->rows); + if (status == MagickFalse) break; } (void) ReadBlobByte(image); /* end of line */ (void) ReadBlobByte(image); - return(MagickTrue); + return(y < (ssize_t) image->rows ? MagickFalse : MagickTrue); } /*