File ImageMagick-CVE-2016-5688.patch of Package ImageMagick

Index: ImageMagick-6.8.9-8/coders/wpg.c
===================================================================
--- ImageMagick-6.8.9-8.orig/coders/wpg.c	2016-06-22 11:47:31.989685865 +0200
+++ ImageMagick-6.8.9-8/coders/wpg.c	2016-06-22 11:47:32.041686705 +0200
@@ -1101,6 +1101,9 @@ static Image *ReadWPGImage(const ImageIn
               bpp=BitmapHeader2.Depth;
 
             UnpackRaster:
+              status=SetImageExtent(image,image->columns,image->rows);
+              if (status == MagickFalse)
+                break;
               if ((image->colors == 0) && (bpp != 24))
                 {
                   image->colors=one << bpp;
@@ -1296,6 +1299,10 @@ static Image *ReadWPGImage(const ImageIn
               image->columns=Bitmap2Header1.Width;
               image->rows=Bitmap2Header1.Heigth;
 
+              status=SetImageExtent(image,image->columns,image->rows);
+              if (status == MagickFalse)
+                break;
+
               if ((image->colors == 0) && (bpp != 24))
                 {
                   size_t
Index: ImageMagick-6.8.9-8/magick/cache.c
===================================================================
--- ImageMagick-6.8.9-8.orig/magick/cache.c	2016-06-22 11:47:31.985685800 +0200
+++ ImageMagick-6.8.9-8/magick/cache.c	2016-06-22 11:47:32.041686705 +0200
@@ -3674,6 +3674,7 @@ static MagickBooleanType OpenPixelCache(
             }
         }
       RelinquishMagickResource(DiskResource,cache_info->length);
+      cache_info->type=UndefinedCache;
       (void) ThrowMagickException(exception,GetMagickModule(),CacheError,
         "CacheResourcesExhausted","`%s'",image->filename);
       return(MagickFalse);
@@ -3686,6 +3687,7 @@ static MagickBooleanType OpenPixelCache(
   if (OpenPixelCacheOnDisk(cache_info,mode) == MagickFalse)
     {
       RelinquishMagickResource(DiskResource,cache_info->length);
+      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToOpenPixelCache",
         image->filename);
       return(MagickFalse);
@@ -3694,6 +3696,7 @@ static MagickBooleanType OpenPixelCache(
     cache_info->length);
   if (status == MagickFalse)
     {
+      cache_info->type=UndefinedCache;
       ThrowFileException(exception,CacheError,"UnableToExtendCache",
         image->filename);
       return(MagickFalse);
openSUSE Build Service is sponsored by