From 21da32d61ba64997cd61f03d9c785e0aef770cd7 Mon Sep 17 00:00:00 2001 From: cristy Date: Sat, 12 Sep 2009 14:56:09 +0000 Subject: [PATCH] --- coders/cmyk.c | 112 +++++++++++++++++++++++++++++++------------------ coders/rgb.c | 38 ++++++++++------- coders/ycbcr.c | 94 ++++++++++++++++++++++++++--------------- 3 files changed, 156 insertions(+), 88 deletions(-) diff --git a/coders/cmyk.c b/coders/cmyk.c index fc5bb9263..a20ec2d84 100644 --- a/coders/cmyk.c +++ b/coders/cmyk.c @@ -214,8 +214,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,quantum_type); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { @@ -234,6 +232,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -276,8 +280,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } break; } @@ -300,8 +302,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,CyanQuantum); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { @@ -320,6 +320,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } for (i=0; i < (image->matte != MagickFalse ? 5 : 4); i++) { quantum_type=quantum_types[i]; @@ -362,8 +368,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -383,8 +387,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,CyanQuantum); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { @@ -397,6 +399,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -425,8 +433,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -445,6 +451,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -473,8 +485,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -493,6 +503,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -521,8 +537,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -547,6 +561,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -577,8 +597,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -599,6 +617,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -628,8 +652,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -676,8 +698,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const PixelPacket @@ -689,6 +709,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -717,8 +743,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -745,8 +769,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const PixelPacket @@ -758,6 +780,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -786,8 +814,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -814,8 +840,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const PixelPacket @@ -827,6 +851,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -855,8 +885,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -883,8 +911,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const IndexPacket @@ -902,6 +928,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -932,8 +964,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -962,8 +992,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const PixelPacket @@ -975,6 +1003,12 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -1003,8 +1037,6 @@ static Image *ReadCMYKImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { diff --git a/coders/rgb.c b/coders/rgb.c index 8dfef3845..b062f0936 100644 --- a/coders/rgb.c +++ b/coders/rgb.c @@ -255,6 +255,12 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -302,8 +308,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } break; } @@ -316,8 +320,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) { length=GetQuantumExtent(canvas_image,quantum_info,quantum_types[0]); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { @@ -330,6 +332,12 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } for (i=0; i < channels; i++) { q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, @@ -364,8 +372,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -385,8 +391,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) { length=GetQuantumExtent(canvas_image,quantum_info,quantum_types[0]); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (i=0; i < channels; i++) { @@ -401,6 +405,12 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -437,8 +447,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -489,8 +497,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { register const PixelPacket @@ -502,6 +508,12 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) register PixelPacket *__restrict q; + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -538,8 +550,6 @@ static Image *ReadRGBImage(const ImageInfo *image_info,ExceptionInfo *exception) break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { diff --git a/coders/ycbcr.c b/coders/ycbcr.c index 14c87c94a..2546eab73 100644 --- a/coders/ycbcr.c +++ b/coders/ycbcr.c @@ -221,11 +221,15 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,quantum_type); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -264,8 +268,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } break; } @@ -287,13 +289,17 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { for (i=0; i < (image->matte != MagickFalse ? 4 : 3); i++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } quantum_type=quantum_types[i]; q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); @@ -330,8 +336,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -351,11 +355,15 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, { length=GetQuantumExtent(canvas_image,quantum_info,RedQuantum); count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -384,8 +392,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -395,6 +401,12 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, } for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -423,8 +435,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -434,6 +444,12 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, } for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -462,8 +478,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -475,6 +489,12 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, { for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -504,8 +524,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -552,10 +570,14 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -584,8 +606,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -612,10 +632,14 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -644,8 +668,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -672,10 +694,14 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -704,8 +730,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { @@ -734,10 +758,14 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; for (y=0; y < (long) image->extract_info.height; y++) { + if (count != (ssize_t) length) + { + ThrowFileException(exception,CorruptImageError, + "UnexpectedEndOfFile",image->filename); + break; + } q=GetAuthenticPixels(canvas_image,0,0,canvas_image->columns,1, exception); if (q == (PixelPacket *) NULL) @@ -767,8 +795,6 @@ static Image *ReadYCBCRImage(const ImageInfo *image_info, break; } count=ReadBlob(image,length,pixels); - if (count != (ssize_t) length) - break; } if (image->previous == (Image *) NULL) { -- 2.40.0