File ImageMagick-CVE-2014-9841.patch of Package ImageMagick.openSUSE_13.2_Update

--- a/coders/psd.c
+++ b/coders/psd.c
@@ -1218,9 +1218,10 @@ static MagickStatusType ReadPSDLayers(Image *image,const ImageInfo *image_info,
       count=ReadBlob(image,4,(unsigned char *) type);
       if ((count == 0) || (LocaleNCompare(type,"8BIM",4) != 0))
         {
-          if (DiscardBlobBytes(image,(MagickSizeType) (size-quantum-8)) == MagickFalse)
-            ThrowFileException(exception,CorruptImageError,
-              "UnexpectedEndOfFile",image->filename);
+          if (DiscardBlobBytes(image,(MagickSizeType) (size-quantum-8)) ==
+              MagickFalse)
+            ThrowBinaryException(CorruptImageError,"UnexpectedEndOfFile",
+              image->filename);
         }
       else
         {
@@ -1228,9 +1229,10 @@ static MagickStatusType ReadPSDLayers(Image *image,const ImageInfo *image_info,
           if ((count != 0) && (LocaleNCompare(type,"Lr16",4) == 0))
             size=GetPSDSize(psd_info,image);
           else
-            if (DiscardBlobBytes(image,(MagickSizeType) (size-quantum-12)) == MagickFalse)
-              ThrowFileException(exception,CorruptImageError,
-                "UnexpectedEndOfFile",image->filename);
+            if (DiscardBlobBytes(image,(MagickSizeType) (size-quantum-12)) ==
+                MagickFalse)
+              ThrowBinaryException(CorruptImageError,"UnexpectedEndOfFile",
+                image->filename);
         }
     }
 
@@ -1261,7 +1263,8 @@ static MagickStatusType ReadPSDLayers(Image *image,const ImageInfo *image_info,
           "  image contains %.20g layers",(double) number_layers);
 
       if (number_layers == 0)
-        return(MagickFalse);
+        ThrowBinaryException(CorruptImageError,"InvalidNumberOfLayers",
+          image->filename);
 
       layer_info=(LayerInfo *) AcquireQuantumMemory((size_t) number_layers,
         sizeof(*layer_info));
@@ -1375,8 +1378,8 @@ static MagickStatusType ReadPSDLayers(Image *image,const ImageInfo *image_info,
                 if (DiscardBlobBytes(image,(MagickSizeType) (length-16)) == MagickFalse)
                   {
                     layer_info=DestroyLayerInfo(layer_info,number_layers);
-                    ThrowFileException(exception,CorruptImageError,
-                      "UnexpectedEndOfFile",image->filename);
+                    ThrowBinaryException(CorruptImageError,"UnexpectedEndOfFile",
+                      image->filename);
                   }
               }
             length=ReadBlobMSBLong(image);

openSUSE Build Service is sponsored by