diff --git a/coders/bgr.c b/coders/bgr.c
index ed9b7ec..5a5b7b1 100644
--- a/coders/bgr.c
+++ b/coders/bgr.c
@@ -149,13 +149,9 @@
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 @@
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 31e223f..69b31e0 100644
--- a/coders/cmyk.c
+++ b/coders/cmyk.c
@@ -149,13 +149,9 @@
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 @@
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 db60438..c24980c 100644
--- a/coders/gray.c
+++ b/coders/gray.c
@@ -148,13 +148,9 @@
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 71edd7f..0915be9 100644
--- a/coders/mono.c
+++ b/coders/mono.c
@@ -140,13 +140,9 @@
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 4a08c6c..81c32b9 100644
--- a/coders/pes.c
+++ b/coders/pes.c
@@ -493,9 +493,9 @@
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 @@
}
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 2877109..2b8ea3c 100644
--- a/coders/psd.c
+++ b/coders/psd.c
@@ -932,9 +932,12 @@
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 @@
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 @@
" 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 7f59eef..b834aba 100644
--- a/coders/raw.c
+++ b/coders/raw.c
@@ -146,13 +146,9 @@
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 252b3ca..0ec26f2 100644
--- a/coders/rgb.c
+++ b/coders/rgb.c
@@ -149,13 +149,9 @@
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 @@
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 0ac9253..8d1506d 100644
--- a/coders/uyvy.c
+++ b/coders/uyvy.c
@@ -139,13 +139,9 @@
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 12366de..c94a9b5 100644
--- a/coders/wbmp.c
+++ b/coders/wbmp.c
@@ -175,13 +175,9 @@
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 4a78731..7e39de6 100644
--- a/coders/xcf.c
+++ b/coders/xcf.c
@@ -841,8 +841,9 @@
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 @@
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 @@
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 @@
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 @@
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 6571699..ede8af1 100644
--- a/coders/ycbcr.c
+++ b/coders/ycbcr.c
@@ -158,13 +158,9 @@
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 @@
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 5981305..7a46c6d 100644
--- a/coders/yuv.c
+++ b/coders/yuv.c
@@ -186,13 +186,9 @@
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.