summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--coders/dcm.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/coders/dcm.c b/coders/dcm.c
index d2890d09a..f119a0998 100644
--- a/coders/dcm.c
+++ b/coders/dcm.c
@@ -3859,18 +3859,17 @@ static Image *ReadDCMImage(const ImageInfo *image_info,ExceptionInfo *exception)
tag=((unsigned int) ReadBlobLSBShort(image) << 16) |
ReadBlobLSBShort(image);
length=(size_t) ReadBlobLSBLong(image);
- if (length > (size_t) GetBlobSize(image))
+ if (EOFBlob(image) != MagickFalse)
{
- read_info=DestroyImageInfo(read_info);
- ThrowDCMException(CorruptImageError,
- "InsufficientImageDataInFile");
+ status=MagickFalse;
+ break;
}
if (tag == 0xFFFEE0DD)
break; /* sequence delimiter tag */
if (tag != 0xFFFEE000)
{
- read_info=DestroyImageInfo(read_info);
- ThrowDCMException(CorruptImageError,"ImproperImageHeader");
+ status=MagickFalse;
+ break;
}
file=(FILE *) NULL;
unique_file=AcquireUniqueFileResource(filename);