File GraphicsMagick-CVE-2019-11505.patch of Package GraphicsMagick.openSUSE_Leap_42.3_Update

Index: GraphicsMagick-1.3.25/coders/pdb.c
===================================================================
--- GraphicsMagick-1.3.25.orig/coders/pdb.c	2019-04-29 16:12:04.725596131 +0200
+++ GraphicsMagick-1.3.25/coders/pdb.c	2019-04-29 16:12:29.705748935 +0200
@@ -684,6 +684,7 @@ ModuleExport void RegisterPDBImage(void)
   entry->magick=(MagickHandler) IsPDB;
   entry->description="Palm Database ImageViewer Format";
   entry->module="PDB";
+  entry->coder_class=UnstableCoderClass;
   (void) RegisterMagickInfo(entry);
 }
 
@@ -818,6 +819,7 @@ static unsigned int WritePDBImage(const
   if (status == False)
     ThrowPDBWriterException(FileOpenError,UnableToOpenFile,image);
   (void) TransformColorspace(image,RGBColorspace);
+  (void) SetImageType(image,GrayscaleType);
   bits_per_pixel=image->depth;
   if (GetImageType(image,&image->exception) == BilevelType)
     bits_per_pixel=1;
@@ -889,7 +891,7 @@ static unsigned int WritePDBImage(const
   buffer=MagickAllocateMemory(unsigned char *,512);
   if (buffer == (unsigned char *) NULL)
     ThrowPDBWriterException(ResourceLimitWarning,MemoryAllocationFailed,image);
-  packet_size=image->depth > 8 ? 2: 1;
+  packet_size=bits_per_pixel > 8 ? 2: 1;
   scanline=MagickAllocateArray(unsigned char *,image->columns,packet_size);
   if (scanline == (unsigned char *) NULL)
     ThrowPDBWriterException(ResourceLimitWarning,MemoryAllocationFailed,image);
@@ -906,7 +908,7 @@ static unsigned int WritePDBImage(const
   {
     if (!AcquireImagePixels(image,0,y,image->columns,1,&image->exception))
       break;
-    (void) ExportImagePixelArea(image,GrayQuantum,image->depth,scanline,0,0);
+    (void) ExportImagePixelArea(image,GrayQuantum,bits_per_pixel,scanline,0,0);
     for (x=0; x < (long) pdb_image.width; x++)
     {
       if (x < (long) image->columns)
openSUSE Build Service is sponsored by