From 311dbd742e510c51f68fcd1e294d0ce035f976f8 Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 26 Feb 2015 23:05:17 +0000 Subject: [PATCH] --- coders/bmp.c | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) 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); } /* -- 2.40.0