From a7f42e484ef1a1ff74936bcedc87347208779c91 Mon Sep 17 00:00:00 2001
From: Cristy <urban-warrior@imagemagick.org>
Date: Sat, 21 Jul 2018 09:11:58 -0400
Subject: [PATCH] https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9470

---
 coders/wpg.c | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

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);
-- 
2.40.0