From d4297029a6faeb030aa4da519db921992dda664f Mon Sep 17 00:00:00 2001 From: cristy Date: Thu, 16 Sep 2010 22:59:09 +0000 Subject: [PATCH] --- coders/bgr.c | 20 ++++++-------------- coders/cmyk.c | 20 ++++++-------------- coders/gray.c | 10 +++------- coders/mono.c | 10 +++------- coders/pes.c | 12 ++++++------ coders/psd.c | 26 +++++++++++--------------- coders/raw.c | 10 +++------- coders/rgb.c | 20 ++++++-------------- coders/uyvy.c | 10 +++------- coders/wbmp.c | 10 +++------- coders/xcf.c | 32 +++++++++++++++----------------- coders/ycbcr.c | 20 ++++++-------------- coders/yuv.c | 10 +++------- 13 files changed, 74 insertions(+), 136 deletions(-) diff --git a/coders/bgr.c b/coders/bgr.c index ed9b7ec7f..5a5b7b1e2 100644 --- a/coders/bgr.c +++ b/coders/bgr.c @@ -149,13 +149,9 @@ static Image *ReadBGRImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); } /* Create virtual canvas to support cropping (i.e. image.rgb[100x100+10+20]). @@ -629,13 +625,9 @@ static Image *ReadBGRImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); length=GetQuantumExtent(canvas_image,quantum_info,BlueQuantum); for (i=0; i < (ssize_t) scene; i++) for (y=0; y < (ssize_t) image->extract_info.height; y++) diff --git a/coders/cmyk.c b/coders/cmyk.c index 31e223ff5..69b31e091 100644 --- a/coders/cmyk.c +++ b/coders/cmyk.c @@ -149,13 +149,9 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); } /* Create virtual canvas to support cropping (i.e. image.cmyk[100x100+10+20]). @@ -701,13 +697,9 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); length=GetQuantumExtent(canvas_image,quantum_info,CyanQuantum); for (i=0; i < (ssize_t) scene; i++) for (y=0; y < (ssize_t) image->extract_info.height; y++) diff --git a/coders/gray.c b/coders/gray.c index db60438c5..c24980c76 100644 --- a/coders/gray.c +++ b/coders/gray.c @@ -148,13 +148,9 @@ static Image *ReadGRAYImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); /* Create virtual canvas to support cropping (i.e. image.gray[100x100+10+20]). */ diff --git a/coders/mono.c b/coders/mono.c index 71edd7f1f..0915be940 100644 --- a/coders/mono.c +++ b/coders/mono.c @@ -140,13 +140,9 @@ static Image *ReadMONOImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); /* Initialize image colormap. */ diff --git a/coders/pes.c b/coders/pes.c index 4a08c6c00..81c32b9f5 100644 --- a/coders/pes.c +++ b/coders/pes.c @@ -493,9 +493,9 @@ static Image *ReadPESImage(const ImageInfo *image_info,ExceptionInfo *exception) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); count=ReadBlob(image,4,version); offset=(int) ReadBlobLSBLong(image); - for (i=0; i < (offset+36); i++) - if (ReadBlobByte(image) == EOF) - break; + if (DiscardBlobBytes(image,offset+36) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); if (EOFBlob(image) != MagickFalse) ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile"); /* @@ -510,9 +510,9 @@ static Image *ReadPESImage(const ImageInfo *image_info,ExceptionInfo *exception) } for ( ; i < 256L; i++) blocks[i].offset=0; - for (i=0; i < (ssize_t) (532L-number_colors-21); i++) - if (ReadBlobByte(image) == EOF) - break; + if (DiscardBlobBytes(image,532L-number_colors-21) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); if (EOFBlob(image) != MagickFalse) ThrowReaderException(CorruptImageError,"UnexpectedEndOfFile"); /* diff --git a/coders/psd.c b/coders/psd.c index 28771092a..2b8ea3c96 100644 --- a/coders/psd.c +++ b/coders/psd.c @@ -932,9 +932,12 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) length=ReadBlobMSBLong(image); } if ((image_info->number_scenes == 1) && (image_info->scene == 0)) - if (DiscardBlobBytes(image,length) == MagickFalse) - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); + { + if (DiscardBlobBytes(image,length) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); + length=0; + } if (length == 0) { if (image->debug != MagickFalse) @@ -1065,19 +1068,15 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) if (image->debug != MagickFalse) (void) LogMagickEvent(CoderEvent,GetMagickModule(), " layer mask: offset(%.20g,%.20g), size(%.20g,%.20g), length=%.20g", - (double) layer_info[i].mask.x, - (double) layer_info[i].mask.y, + (double) layer_info[i].mask.x,(double) layer_info[i].mask.y, (double) layer_info[i].mask.width,(double) layer_info[i].mask.height,(double) length-16); /* Skip over the rest of the layer mask information. */ if (DiscardBlobBytes(image,length-16) == MagickFalse) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); } combinedlength+=length+4; /* +4 for length */ length=ReadBlobMSBLong(image); @@ -1160,11 +1159,8 @@ static Image *ReadPSDImage(const ImageInfo *image_info,ExceptionInfo *exception) " unsupported data: length=%.20g",(double) (size-combinedlength)); if (DiscardBlobBytes(image,size-combinedlength) == MagickFalse) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); } /* Allocate layered image. diff --git a/coders/raw.c b/coders/raw.c index 7f59eef00..b834aba9c 100644 --- a/coders/raw.c +++ b/coders/raw.c @@ -146,13 +146,9 @@ static Image *ReadRAWImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); /* Create virtual canvas to support cropping (i.e. image.gray[100x100+10+20]). */ diff --git a/coders/rgb.c b/coders/rgb.c index 252b3ca2d..0ec26f2b1 100644 --- a/coders/rgb.c +++ b/coders/rgb.c @@ -149,13 +149,9 @@ static Image *ReadRGBImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); } /* Create virtual canvas to support cropping (i.e. image.rgb[100x100+10+20]). @@ -636,13 +632,9 @@ static Image *ReadRGBImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum); for (i=0; i < (ssize_t) scene; i++) for (y=0; y < (ssize_t) image->extract_info.height; y++) diff --git a/coders/uyvy.c b/coders/uyvy.c index 0ac925327..8d1506de4 100644 --- a/coders/uyvy.c +++ b/coders/uyvy.c @@ -139,13 +139,9 @@ static Image *ReadUYVYImage(const ImageInfo *image_info, status=OpenBlob(image_info,image,ReadBinaryBlobMode,exception); if (status == MagickFalse) return((Image *) NULL); - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); image->depth=8; if (image_info->ping != MagickFalse) { diff --git a/coders/wbmp.c b/coders/wbmp.c index 12366de20..c94a9b528 100644 --- a/coders/wbmp.c +++ b/coders/wbmp.c @@ -175,13 +175,9 @@ static Image *ReadWBMPImage(const ImageInfo *image_info, ThrowReaderException(CorruptImageError,"CorruptWBMPimage"); if ((image->columns == 0) || (image->rows == 0)) ThrowReaderException(CorruptImageError,"ImproperImageHeader"); - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", - image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); if (AcquireImageColormap(image,2) == MagickFalse) ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); if (image_info->ping != MagickFalse) diff --git a/coders/xcf.c b/coders/xcf.c index 4a7873142..7e39de625 100644 --- a/coders/xcf.c +++ b/coders/xcf.c @@ -841,8 +841,9 @@ static MagickBooleanType ReadOneLayer(Image* image,XCFDocInfo* inDocInfo, break; case PROP_PARASITES: { - for (i=0; i < (ssize_t) prop_size; i++ ) - (void) ReadBlobByte(image); + if (DiscardBlobBytes(image,prop_size) == MagickFalse) + ThrowFileException(&image->exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); /* ssize_t base = info->cp; @@ -1069,8 +1070,9 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) by some Gimp versions. */ size_t num_colours = ReadBlobMSBLong(image); - for (i=0; i < (ssize_t) (3L*num_colours); i++ ) - (void) ReadBlobByte(image); + if (DiscardBlobBytes(image,3*num_colours) == MagickFalse) + ThrowFileException(&image->exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); /* if (info->file_version == 0) { @@ -1116,10 +1118,9 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) case PROP_GUIDES: { /* just skip it - we don't care about guides */ - for (i=0; i < (ssize_t) prop_size; i++ ) - if (ReadBlobByte(image) == EOF) - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); + if (DiscardBlobBytes(image,prop_size) == MagickFalse) + ThrowFileException(&image->exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); } break; @@ -1157,11 +1158,9 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) case PROP_PARASITES: { /* BOGUS: we may need these for IPTC stuff */ - for (i=0; i < (ssize_t) prop_size; i++ ) - if (ReadBlobByte(image) == EOF) - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - + if (DiscardBlobBytes(image,prop_size) == MagickFalse) + ThrowFileException(&image->exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); /* gssize_t base = info->cp; GimpParasite *p; @@ -1188,10 +1187,9 @@ static Image *ReadXCFImage(const ImageInfo *image_info,ExceptionInfo *exception) case PROP_PATHS: { /* BOGUS: just skip it for now */ - for (i=0; i< (ssize_t) prop_size; i++ ) - if (ReadBlobByte(image) == EOF) - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); + if (DiscardBlobBytes(image,prop_size) == MagickFalse) + ThrowFileException(&image->exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); /* PathList *paths = xcf_load_bzpaths (gimage, info); diff --git a/coders/ycbcr.c b/coders/ycbcr.c index 6571699b0..ede8af194 100644 --- a/coders/ycbcr.c +++ b/coders/ycbcr.c @@ -158,13 +158,9 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); } /* Create virtual canvas to support cropping (i.e. image.rgb[100x100+10+20]). @@ -555,13 +551,9 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum); for (i=0; i < (ssize_t) scene; i++) for (y=0; y < (ssize_t) image->extract_info.height; y++) diff --git a/coders/yuv.c b/coders/yuv.c index 598130511..7a46c6d78 100644 --- a/coders/yuv.c +++ b/coders/yuv.c @@ -186,13 +186,9 @@ static Image *ReadYUVImage(const ImageInfo *image_info,ExceptionInfo *exception) image=DestroyImageList(image); return((Image *) NULL); } - for (i=0; i < image->offset; i++) - if (ReadBlobByte(image) == EOF) - { - ThrowFileException(exception,CorruptImageError, - "UnexpectedEndOfFile",image->filename); - break; - } + if (DiscardBlobBytes(image,image->offset) == MagickFalse) + ThrowFileException(exception,CorruptImageError,"UnexpectedEndOfFile", + image->filename); } /* Allocate memory for a scanline. -- 2.40.0