]> granicus.if.org Git - imagemagick/commitdiff
https://bugs.chromium.org/p/oss-fuzz/issues/detail?id=9470
authorCristy <urban-warrior@imagemagick.org>
Sat, 21 Jul 2018 13:11:58 +0000 (09:11 -0400)
committerCristy <urban-warrior@imagemagick.org>
Sat, 21 Jul 2018 13:11:58 +0000 (09:11 -0400)
coders/wpg.c

index de7dbd839fed001f9529a39c5ed2ce29245cfcb5..62b761ed68341c65717b339dc320a9421db4e763 100644 (file)
@@ -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);