From cd35745673de213b5367666e8801f606a667c444 Mon Sep 17 00:00:00 2001 From: Cristy Date: Sat, 4 Jan 2020 09:15:22 -0500 Subject: Fix memory leak for corrupt image file --- coders/dcm.c | 11 +++++------ 1 file 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); -- cgit v1.2.3