From: Cristy Date: Sat, 21 Jul 2018 13:11:58 +0000 (-0400) Subject: https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9470 X-Git-Tag: 7.0.8-8~14 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=a7f42e484ef1a1ff74936bcedc87347208779c91;p=imagemagick https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9470 --- diff --git a/coders/wpg.c b/coders/wpg.c index de7dbd839..62b761ed6 100644 --- a/coders/wpg.c +++ b/coders/wpg.c @@ -794,18 +794,21 @@ static Image *ExtractPostscript(Image *image,const ImageInfo *image_info, /* Copy postscript to temporary file */ if (SeekBlob(image,PS_Offset,SEEK_SET) != PS_Offset) { + (void) fclose(ps_file); DestroyImageInfo(clone_info); ThrowReaderException(CorruptImageError,"ImproperImageHeader"); } count=ReadBlob(image, 2*MagickPathExtent, magick); if (count < 1) { + (void) fclose(ps_file); DestroyImageInfo(clone_info); ThrowReaderException(CorruptImageError,"ImproperImageHeader"); } if (SeekBlob(image,PS_Offset,SEEK_SET) != PS_Offset) { + (void) fclose(ps_file); DestroyImageInfo(clone_info); ThrowReaderException(CorruptImageError,"ImproperImageHeader"); } @@ -813,7 +816,11 @@ static Image *ExtractPostscript(Image *image,const ImageInfo *image_info, { c=ReadBlobByte(image); if (c == EOF) - break; + { + (void) fclose(ps_file); + DestroyImageInfo(clone_info); + ThrowReaderException(CorruptImageError,"ImproperImageHeader"); + } (void) fputc(c,ps_file); } (void) fclose(ps_file);