From 1c397640e3a3bf555f0315ef60bcc8a76b3fb781 Mon Sep 17 00:00:00 2001 From: Dirk Lemstra Date: Sun, 1 Apr 2018 15:43:44 +0200 Subject: [PATCH] Fixed memory leak (https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=7253). --- coders/jpeg.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/coders/jpeg.c b/coders/jpeg.c index 18545e418..8d97f5e5f 100644 --- a/coders/jpeg.c +++ b/coders/jpeg.c @@ -1301,7 +1301,10 @@ static Image *ReadJPEGImage(const ImageInfo *image_info, option=GetImageOption(image_info,"jpeg:colors"); if (option != (const char *) NULL) if (AcquireImageColormap(image,StringToUnsignedLong(option),exception) == MagickFalse) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + { + jpeg_destroy_decompress(&jpeg_info); + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + } if ((jpeg_info.output_components == 1) && (jpeg_info.quantize_colors == 0)) { size_t @@ -1309,7 +1312,10 @@ static Image *ReadJPEGImage(const ImageInfo *image_info, colors=(size_t) GetQuantumRange(image->depth)+1; if (AcquireImageColormap(image,colors,exception) == MagickFalse) - ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + { + jpeg_destroy_decompress(&jpeg_info); + ThrowReaderException(ResourceLimitError,"MemoryAllocationFailed"); + } } if (image->debug != MagickFalse) { -- 2.40.0