File GraphicsMagick-CVE-2017-14138.patch of Package GraphicsMagick.7574

Index: GraphicsMagick-1.3.25/coders/webp.c
===================================================================
--- GraphicsMagick-1.3.25.orig/coders/webp.c	2015-10-04 21:35:31.000000000 +0200
+++ GraphicsMagick-1.3.25/coders/webp.c	2017-11-07 11:28:57.432146827 +0100
@@ -186,15 +186,19 @@ static Image *ReadWEBPImage(const ImageI
           break;
 #endif
         case VP8_STATUS_OUT_OF_MEMORY:
+          MagickFreeMemory(stream);
           ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);
           break;
         case VP8_STATUS_INVALID_PARAM:
+          MagickFreeMemory(stream);
           ThrowReaderException(CoderError,WebPInvalidParameter,image);
           break;
         case VP8_STATUS_BITSTREAM_ERROR:
+          MagickFreeMemory(stream);
           ThrowReaderException(CorruptImageError,CorruptImage,image);
           break;
         case VP8_STATUS_UNSUPPORTED_FEATURE:
+          MagickFreeMemory(stream);
           ThrowReaderException(CoderError,DataEncodingSchemeIsNotSupported,image);
           break;
         case VP8_STATUS_SUSPENDED:
@@ -210,15 +214,18 @@ static Image *ReadWEBPImage(const ImageI
             This is what is returned if the user terminates the
             decoding.
           */
+          MagickFreeMemory(stream);
           ThrowReaderException(CoderError,WebPDecodingFailedUserAbort,image);
           break;
         case VP8_STATUS_NOT_ENOUGH_DATA:
+          MagickFreeMemory(stream);
           ThrowReaderException(CorruptImageError,InsufficientImageDataInFile,image);
           break;
         }
       /*
         Catch-all if not handled above.
       */
+      MagickFreeMemory(stream);
       ThrowReaderException(CorruptImageError,CorruptImage,image);
     }
   image->depth=8;
openSUSE Build Service is sponsored by