summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk9
-rw-r--r--gnu/packages/imagemagick.scm14
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch137
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch28
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch16
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch28
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch195
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch179
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch80
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch72
-rw-r--r--gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch210
11 files changed, 2 insertions, 966 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 75065b019d..22f2a8f927 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -704,15 +704,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/gobject-introspection-absolute-shlib-path.patch \
   %D%/packages/patches/gobject-introspection-cc.patch		\
   %D%/packages/patches/gobject-introspection-girepository.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-12935.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-12936.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-12937.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-13775.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-14042.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-14165.patch	\
-  %D%/packages/patches/graphicsmagick-CVE-2017-14649.patch	\
   %D%/packages/patches/graphite2-ffloat-store.patch		\
   %D%/packages/patches/grep-gnulib-lock.patch                   \
   %D%/packages/patches/grep-timing-sensitive-test.patch		\
diff --git a/gnu/packages/imagemagick.scm b/gnu/packages/imagemagick.scm
index 42f4a7c92e..ac9fca8600 100644
--- a/gnu/packages/imagemagick.scm
+++ b/gnu/packages/imagemagick.scm
@@ -164,7 +164,7 @@ script.")
 (define-public graphicsmagick
   (package
     (name "graphicsmagick")
-    (version "1.3.26")
+    (version "1.3.27")
     (source (origin
               (method url-fetch)
               (uri
@@ -176,17 +176,7 @@ script.")
                                  "/GraphicsMagick-" version ".tar.xz")))
               (sha256
                (base32
-                "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"))
-              (patches
-               (search-patches "graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch"
-                               "graphicsmagick-CVE-2017-12935.patch"
-                               "graphicsmagick-CVE-2017-12936.patch"
-                               "graphicsmagick-CVE-2017-12937.patch"
-                               "graphicsmagick-CVE-2017-13775.patch"
-                               "graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch"
-                               "graphicsmagick-CVE-2017-14042.patch"
-                               "graphicsmagick-CVE-2017-14165.patch"
-                               "graphicsmagick-CVE-2017-14649.patch"))))
+                "0rq35p3rml10cxz2z4s7xcfsilhhk19mmy094g3ivz0fg797hcnh"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch
deleted file mode 100644
index dbcaea1343..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-11403+CVE-2017-14103.patch
+++ /dev/null
@@ -1,137 +0,0 @@
-http://www.openwall.com/lists/oss-security/2017/09/01/6
-
-CVE-2017-11403:
-http://hg.code.sf.net/p/graphicsmagick/code/rev/d0a76868ca37
-
-CVE-2017-14103:
-http://hg.code.sf.net/p/graphicsmagick/code/rev/98721124e51f
-
-some changes were made to make the patch apply
-
-# HG changeset patch
-# User Glenn Randers-Pehrson <glennrp+bmo@gmail.com>
-# Date 1503875721 14400
-# Node ID 98721124e51fd5ec0c6fba64bce2e218869632d2
-# Parent  f0f2ea85a2930f3b6dcd72352719adb9660f2aad
-Attempt to fix Issue 440.
-
-diff -ru a/coders/png.c b/coders/png.c
---- a/coders/png.c	1969-12-31 19:00:00.000000000 -0500
-+++ b/coders/png.c	2017-09-10 11:31:56.543194173 -0400
-@@ -3106,7 +3106,9 @@
-       if (length > PNG_MAX_UINT || count == 0)
-         {
-           DestroyJNGInfo(color_image_info,alpha_image_info);
--          ThrowReaderException(CorruptImageError,CorruptImage,image);
-+          (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+              "chunk length (%lu) > PNG_MAX_UINT",length);
-+          return ((Image*)NULL);
-         }
-
-       chunk=(unsigned char *) NULL;
-@@ -3117,13 +3119,16 @@
-           if (chunk == (unsigned char *) NULL)
-             {
-               DestroyJNGInfo(color_image_info,alpha_image_info);
--              ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,
--                                   image);
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  "    Could not allocate chunk memory");
-+              return ((Image*)NULL);
-             }
-           if (ReadBlob(image,length,chunk) < length)
-             {
-               DestroyJNGInfo(color_image_info,alpha_image_info);
--              ThrowReaderException(CorruptImageError,CorruptImage,image);
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  "    chunk reading was incomplete");
-+              return ((Image*)NULL);
-             }
-           p=chunk;
-         }
-@@ -3198,7 +3203,7 @@
-                   jng_width, jng_height);
-               MagickFreeMemory(chunk);
-               DestroyJNGInfo(color_image_info,alpha_image_info);
--              ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
-+              return ((Image *)NULL);
-             }
-
-           /* Temporarily set width and height resources to match JHDR */
-@@ -3233,8 +3238,9 @@
-           if (color_image == (Image *) NULL)
-             {
-               DestroyJNGInfo(color_image_info,alpha_image_info);
--              ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,
--                                   image);
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  "    could not open color_image blob");
-+              return ((Image *)NULL);
-             }
-           if (logging)
-             (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-@@ -3245,7 +3251,9 @@
-           if (status == MagickFalse)
-             {
-               DestroyJNGInfo(color_image_info,alpha_image_info);
--              ThrowReaderException(CoderError,UnableToOpenBlob,color_image);
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  "    could not open color_image blob");
-+              return ((Image *)NULL);
-             }
-
-           if (!image_info->ping && jng_color_type >= 12)
-@@ -3255,17 +3263,18 @@
-               if (alpha_image_info == (ImageInfo *) NULL)
-                 {
-                   DestroyJNGInfo(color_image_info,alpha_image_info);
--                  ThrowReaderException(ResourceLimitError,
--                                       MemoryAllocationFailed, image);
-+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                      "    could not allocate alpha_image_info",length);
-+                  return ((Image *)NULL);
-                 }
-               GetImageInfo(alpha_image_info);
-               alpha_image=AllocateImage(alpha_image_info);
-               if (alpha_image == (Image *) NULL)
-                 {
-                   DestroyJNGInfo(color_image_info,alpha_image_info);
--                  ThrowReaderException(ResourceLimitError,
--                                       MemoryAllocationFailed,
--                                       alpha_image);
-+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                      "    could not allocate alpha_image");
-+                  return ((Image *)NULL);
-                 }
-               if (logging)
-                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-@@ -3277,7 +3286,9 @@
-                 {
-                   DestroyJNGInfo(color_image_info,alpha_image_info);
-                   DestroyImage(alpha_image);
--                  ThrowReaderException(CoderError,UnableToOpenBlob,image);
-+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                      "    could not allocate alpha_image blob");
-+                  return ((Image *)NULL);
-                 }
-               if (jng_alpha_compression_method == 0)
-                 {
-@@ -3613,6 +3624,8 @@
-               alpha_image = (Image *)NULL;
-               DestroyImageInfo(alpha_image_info);
-               alpha_image_info = (ImageInfo *)NULL;
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  " Destroy the JNG image");
-               DestroyImage(jng_image);
-               jng_image = (Image *)NULL;
-             }
-@@ -5146,8 +5159,8 @@
-
-       if (image == (Image *) NULL)
-         {
--          DestroyImageList(previous);
-           CloseBlob(previous);
-+          DestroyImageList(previous);
-           MngInfoFreeStruct(mng_info,&have_mng_structure);
-           return((Image *) NULL);
-         }
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch
deleted file mode 100644
index 2cb3d46f62..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This patch comes from http://hg.code.sf.net/p/graphicsmagick/code/rev/cd699a44f188.
-
-diff -ur a/coders/png.c b/coders/png.c
---- a/coders/png.c	2017-07-04 17:32:08.000000000 -0400
-+++ b/coders/png.c	2017-08-19 11:16:20.933969362 -0400
-@@ -4101,11 +4101,17 @@
-                   mng_info->image=image;
-                 }
- 
--              if ((mng_info->mng_width > 65535L) || (mng_info->mng_height
--                                                     > 65535L))
--                (void) ThrowException(&image->exception,ImageError,
--                                      WidthOrHeightExceedsLimit,
--                                      image->filename);
-+              if ((mng_info->mng_width > 65535L) ||
-+                  (mng_info->mng_height > 65535L))
-+                {
-+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                      "  MNG width or height is too large: %lu, %lu",
-+                      mng_info->mng_width,mng_info->mng_height);
-+                  MagickFreeMemory(chunk);
-+                  ThrowReaderException(CorruptImageError,
-+                     ImproperImageHeader,image);
-+                }
-+
-               FormatString(page_geometry,"%lux%lu+0+0",mng_info->mng_width,
-                            mng_info->mng_height);
-               mng_info->frame.left=0;
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch
deleted file mode 100644
index 7036f37438..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch
+++ /dev/null
@@ -1,16 +0,0 @@
-This patch comes from http://hg.code.sf.net/p/graphicsmagick/code/rev/be898b7c97bd.
-
-diff -ur a/coders/wmf.c b/coders/wmf.c
---- a/coders/wmf.c	2016-09-05 15:20:23.000000000 -0400
-+++ b/coders/wmf.c	2017-08-19 10:38:08.984187264 -0400
-@@ -2719,8 +2719,8 @@
-   if(image->exception.severity != UndefinedException)
-     ThrowException2(exception,
-                    CoderWarning,
--                   ddata->image->exception.reason,
--                   ddata->image->exception.description);
-+                   image->exception.reason,
-+                   image->exception.description);
- 
-   if(logging)
-     (void) LogMagickEvent(CoderEvent,GetMagickModule(),"leave ReadWMFImage()");
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch
deleted file mode 100644
index 71af9ffe59..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch
+++ /dev/null
@@ -1,28 +0,0 @@
-This patch comes from http://hg.code.sf.net/p/graphicsmagick/code/rev/95d00d55e978.
-
-diff -ur a/coders/sun.c b/coders/sun.c
---- a/coders/sun.c	2016-05-30 13:19:54.000000000 -0400
-+++ b/coders/sun.c	2017-08-18 18:00:00.191023610 -0400
-@@ -1,5 +1,5 @@
- /*
--% Copyright (C) 2003-2015 GraphicsMagick Group
-+% Copyright (C) 2003-2017 GraphicsMagick Group
- % Copyright (C) 2002 ImageMagick Studio
- % Copyright 1991-1999 E. I. du Pont de Nemours and Company
- %
-@@ -577,6 +577,7 @@
-           for (bit=7; bit >= 0; bit--)
-             {
-               index=((*p) & (0x01 << bit) ? 0x01 : 0x00);
-+              VerifyColormapIndex(image,index);
-               indexes[x+7-bit]=index;
-               q[x+7-bit]=image->colormap[index];
-             }
-@@ -587,6 +588,7 @@
-             for (bit=7; bit >= (long) (8-(image->columns % 8)); bit--)
-               {
-                 index=((*p) & (0x01 << bit) ? 0x01 : 0x00);
-+                VerifyColormapIndex(image,index);
-                 indexes[x+7-bit]=index;
-                 q[x+7-bit]=image->colormap[index];
-               }
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch
deleted file mode 100644
index 83478c13b3..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-13775.patch
+++ /dev/null
@@ -1,195 +0,0 @@
-http://openwall.com/lists/oss-security/2017/08/31/3
-http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/b037d79b6ccd
-
-some changes were made to make the patch apply
-
-# HG changeset patch
-# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
-# Date 1503774853 18000
-# Node ID b037d79b6ccd0cfba7ba9ce09b454ed46d688036
-# Parent  198ea602ea7cc767dc3022bbcf887bcd4534158d
-JNX: Fix DOS issues
-
-diff -r 198ea602ea7c -r b037d79b6ccd coders/jnx.c
---- a/coders/jnx.c	Tue Aug 22 08:08:30 2017 -0500
-+++ b/coders/jnx.c	Sat Aug 26 14:14:13 2017 -0500
-@@ -1,5 +1,5 @@
- /*
--% Copyright (C) 2012-2015 GraphicsMagick Group
-+% Copyright (C) 2012-2017 GraphicsMagick Group
- %
- % This program is covered by multiple licenses, which are described in
- % Copyright.txt. You should have received a copy of Copyright.txt with this
-@@ -100,6 +100,7 @@
- 
-   char img_label_str[MaxTextExtent];
- 
-+
-   alloc_size = TileInfo->PicSize + 2;
- 
-   if (image->logging)
-@@ -242,6 +243,9 @@
-     total_tiles,
-     current_tile;
- 
-+  magick_off_t
-+    file_size;
-+
-   /* Open image file. */
-   assert(image_info != (const ImageInfo *) NULL);
-   assert(image_info->signature == MagickSignature);
-@@ -254,9 +258,8 @@
-   if (status == False)
-     ThrowReaderException(FileOpenError, UnableToOpenFile, image);
- 
--  memset(JNXLevelInfo, 0, sizeof(JNXLevelInfo));
--
-   /* Read JNX image header. */
-+  (void) memset(&JNXHeader, 0, sizeof(JNXHeader));
-   JNXHeader.Version = ReadBlobLSBLong(image);
-   if (JNXHeader.Version > 4)
-     ThrowReaderException(CorruptImageError, ImproperImageHeader, image);
-@@ -266,8 +269,6 @@
-   JNXHeader.MapBounds.SouthWest.lat = ReadBlobLSBLong(image);
-   JNXHeader.MapBounds.SouthWest.lon = ReadBlobLSBLong(image);
-   JNXHeader.Levels = ReadBlobLSBLong(image);
--  if (JNXHeader.Levels > 20)
--    ThrowReaderException(CorruptImageError, ImproperImageHeader, image);
-   JNXHeader.Expiration = ReadBlobLSBLong(image);
-   JNXHeader.ProductID = ReadBlobLSBLong(image);
-   JNXHeader.CRC = ReadBlobLSBLong(image);
-@@ -279,7 +280,41 @@
-   if (EOFBlob(image))
-     ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
- 
-+  file_size = GetBlobSize(image);
-+
-+  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                        "JNX Header:\n"
-+                        "    Version:    %u\n"
-+                        "    DeviceSN:   %u\n"
-+                        "    MapBounds:\n"
-+                        "      NorthEast: lat = %u, lon = %u\n"
-+                        "      SouthWest: lat = %u, lon = %u\n"
-+                        "    Levels:     %u\n"
-+                        "    Expiration: %u\n"
-+                        "    ProductID:  %u\n"
-+                        "    CRC:        %u\n"
-+                        "    SigVersion: %u\n"
-+                        "    SigOffset:  %u\n"
-+                        "    ZOrder:     %u",
-+                        JNXHeader.Version,
-+                        JNXHeader.DeviceSN,
-+                        JNXHeader.MapBounds.NorthEast.lat,
-+                        JNXHeader.MapBounds.NorthEast.lon,
-+                        JNXHeader.MapBounds.SouthWest.lat,
-+                        JNXHeader.MapBounds.SouthWest.lon,
-+                        JNXHeader.Levels,
-+                        JNXHeader.Expiration,
-+                        JNXHeader.ProductID,
-+                        JNXHeader.CRC,
-+                        JNXHeader.SigVersion,
-+                        JNXHeader.SigOffset,
-+                        JNXHeader.ZOrder);
-+
-+  if (JNXHeader.Levels > 20)
-+    ThrowReaderException(CorruptImageError, ImproperImageHeader, image);
-+
-   /* Read JNX image level info. */
-+  memset(JNXLevelInfo, 0, sizeof(JNXLevelInfo));
-   total_tiles = 0;
-   current_tile = 0;
-   for (i = 0; i < JNXHeader.Levels; i++)
-@@ -302,11 +337,23 @@
-         {
-           JNXLevelInfo[i].Copyright = NULL;
-         }
-+
-+      if (EOFBlob(image))
-+        ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
-+
-+      if (image->logging)
-+        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                              "Level[%u] Info:"
-+                              "  TileCount: %4u"
-+                              "  TilesOffset: %6u"
-+                              "  Scale: %04u",
-+                              i,
-+                              JNXLevelInfo[i].TileCount,
-+                              JNXLevelInfo[i].TilesOffset,
-+                              JNXLevelInfo[i].Scale
-+                              );
-     }
- 
--  if (EOFBlob(image))
--    ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
--
-   /* Get the current limit */
-   SaveLimit = GetMagickResourceLimit(MapResource);
- 
-@@ -316,11 +363,32 @@
-   /* Read JNX image data. */
-   for (i = 0; i < JNXHeader.Levels; i++)
-     {
-+      /*
-+        Validate TileCount against remaining file data
-+      */
-+      const magick_off_t current_offset = TellBlob(image);
-+      const size_t pos_list_entry_size =
-+        sizeof(magick_uint32_t) + sizeof(magick_uint32_t) + sizeof(magick_uint32_t) +
-+        sizeof(magick_uint32_t) + sizeof(magick_uint16_t) + sizeof(magick_uint16_t) +
-+        sizeof(magick_uint32_t) + sizeof(magick_uint32_t);
-+      const magick_off_t remaining = file_size-current_offset;
-+      const size_t needed = MagickArraySize(pos_list_entry_size,JNXLevelInfo[i].TileCount);
-+
-+      if ((needed == 0U) || (remaining <= 0) || (remaining < (magick_off_t) needed))
-+        {
-+          (void) SetMagickResourceLimit(MapResource, SaveLimit);
-+          ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
-+        }
-+
-       PositionList = MagickAllocateArray(TJNXTileInfo *,
-                                          JNXLevelInfo[i].TileCount,
-                                          sizeof(TJNXTileInfo));
-       if (PositionList == NULL)
--        continue;
-+        {
-+          (void) SetMagickResourceLimit(MapResource, SaveLimit);
-+          ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,
-+                               image);
-+        }
- 
-       (void) SeekBlob(image, JNXLevelInfo[i].TilesOffset, SEEK_SET);
-       for (j = 0; j < JNXLevelInfo[i].TileCount; j++)
-@@ -333,12 +401,15 @@
-           PositionList[j].PicHeight = ReadBlobLSBShort(image);
-           PositionList[j].PicSize = ReadBlobLSBLong(image);
-           PositionList[j].PicOffset = ReadBlobLSBLong(image);
--        }
- 
--      if (EOFBlob(image))
--        {
--          MagickFreeMemory(PositionList);
--          ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
-+          if (EOFBlob(image) ||
-+              ((magick_off_t) PositionList[j].PicOffset +
-+               PositionList[j].PicSize > file_size))
-+            {
-+              (void) SetMagickResourceLimit(MapResource, SaveLimit);
-+              MagickFreeMemory(PositionList);
-+              ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
-+            }
-         }
- 
-       for (j = 0; j < JNXLevelInfo[i].TileCount; j++)
-@@ -351,6 +422,9 @@
-           image = ExtractTileJPG(image, image_info, PositionList+j, exception);
-           (void) SetMonitorHandler(previous_handler);
- 
-+          if (exception->severity >= ErrorException)
-+            break;
-+
-           current_tile++;
-           if (QuantumTick(current_tile,total_tiles))
-             if (!MagickMonitorFormatted(current_tile,total_tiles,exception,
-
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch
deleted file mode 100644
index e129fd58fc..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-13776+CVE-2017-13777.patch
+++ /dev/null
@@ -1,179 +0,0 @@
-http://openwall.com/lists/oss-security/2017/08/31/1
-http://openwall.com/lists/oss-security/2017/08/31/2
-http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/233a720bfd5e
-
-some changes were made to make the patch apply
-
-# HG changeset patch
-# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
-# Date 1503779175 18000
-# Node ID 233a720bfd5efd378f133a776507ed41230da617
-# Parent  b037d79b6ccd0cfba7ba9ce09b454ed46d688036
-XBM: Fix DOS issues.
-
-diff -r b037d79b6ccd -r 233a720bfd5e coders/xbm.c
---- a/coders/xbm.c	Sat Aug 26 14:14:13 2017 -0500
-+++ b/coders/xbm.c	Sat Aug 26 15:26:15 2017 -0500
-@@ -1,5 +1,5 @@
- /*
--% Copyright (C) 2003 -2012 GraphicsMagick Group
-+% Copyright (C) 2003-2017 GraphicsMagick Group
- % Copyright (C) 2002 ImageMagick Studio
- % Copyright 1991-1999 E. I. du Pont de Nemours and Company
- %
-@@ -121,13 +121,15 @@
- 
- static int XBMInteger(Image *image,short int *hex_digits)
- {
-+  unsigned int
-+    flag;
-+
-   int
-     c,
--    flag,
-     value;
- 
-   value=0;
--  flag=0;
-+  flag=0U;
-   for ( ; ; )
-   {
-     c=ReadBlobByte(image);
-@@ -158,18 +160,14 @@
-   Image
-     *image;
- 
--  int
--    bit;
--
--  long
--    y;
--
-   register IndexPacket
-     *indexes;
- 
--  register long
-+  register size_t
-+    bytes_per_line,
-     i,
--    x;
-+    x,
-+    y;
- 
-   register PixelPacket
-     *q;
-@@ -177,22 +175,24 @@
-   register unsigned char
-     *p;
- 
--  short int
--    hex_digits[256];
--
-   unsigned char
-     *data;
- 
-   unsigned int
-+    bit,
-+    byte,
-+    padding,
-+    version;
-+
-+  int
-+    value;
-+
-+  short int
-+    hex_digits[256];
-+
-+  MagickPassFail
-     status;
- 
--  unsigned long
--    byte,
--    bytes_per_line,
--    padding,
--    value,
--    version;
--
-   /*
-     Open image file.
-   */
-@@ -207,6 +207,8 @@
-   /*
-     Read X bitmap header.
-   */
-+  (void) memset(buffer,0,sizeof(buffer));
-+  name[0]='\0';
-   while (ReadBlobString(image,buffer) != (char *) NULL)
-     if (sscanf(buffer,"#define %s %lu",name,&image->columns) == 2)
-       if ((strlen(name) >= 6) &&
-@@ -278,6 +280,8 @@
-   /*
-     Initialize hex values.
-   */
-+  for (i = 0; i < sizeof(hex_digits)/sizeof(hex_digits[0]); i++)
-+    hex_digits[i]=(-1);
-   hex_digits['0']=0;
-   hex_digits['1']=1;
-   hex_digits['2']=2;
-@@ -311,40 +315,50 @@
-   */
-   p=data;
-   if (version == 10)
--    for (i=0; i < (long) (bytes_per_line*image->rows); (i+=2))
-+    for (i=0; i < (bytes_per_line*image->rows); (i+=2))
-     {
-       value=XBMInteger(image,hex_digits);
-+      if (value < 0)
-+        {
-+          MagickFreeMemory(data);
-+          ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
-+        }
-       *p++=(unsigned char) value;
-       if (!padding || ((i+2) % bytes_per_line))
-         *p++=(unsigned char) (value >> 8);
-     }
-   else
--    for (i=0; i < (long) (bytes_per_line*image->rows); i++)
-+    for (i=0; i < (bytes_per_line*image->rows); i++)
-     {
-       value=XBMInteger(image,hex_digits);
-+      if (value < 0)
-+        {
-+          MagickFreeMemory(data);
-+          ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
-+        }
-       *p++=(unsigned char) value;
-     }
-   /*
-     Convert X bitmap image to pixel packets.
-   */
-   p=data;
--  for (y=0; y < (long) image->rows; y++)
-+  for (y=0; y < image->rows; y++)
-   {
-     q=SetImagePixels(image,0,y,image->columns,1);
-     if (q == (PixelPacket *) NULL)
-       break;
-     indexes=AccessMutableIndexes(image);
--    bit=0;
--    byte=0;
--    for (x=0; x < (long) image->columns; x++)
-+    bit=0U;
-+    byte=0U;
-+    for (x=0; x < image->columns; x++)
-     {
--      if (bit == 0)
-+      if (bit == 0U)
-         byte=(*p++);
-       indexes[x]=byte & 0x01 ? 0x01 : 0x00;
-       bit++;
--      byte>>=1;
--      if (bit == 8)
--        bit=0;
-+      byte>>=1U;
-+      if (bit == 8U)
-+        bit=0U;
-     }
-     if (!SyncImagePixels(image))
-       break;
-
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch
deleted file mode 100644
index 46f6b032c7..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-14042.patch
+++ /dev/null
@@ -1,80 +0,0 @@
-http://openwall.com/lists/oss-security/2017/08/28/5
-http://hg.code.sf.net/p/graphicsmagick/code/rev/3bbf7a13643d
-
-some changes were made to make the patch apply
-
-# HG changeset patch
-# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
-# Date 1503268616 18000
-# Node ID 3bbf7a13643df3be76b0e19088a6cc632eea2072
-# Parent  83a5b946180835f260bcb91e3d06327a8e2577e3
-PNM: For binary formats, verify sufficient backing file data before memory request.
-
-diff -r 83a5b9461808 -r 3bbf7a13643d coders/pnm.c
---- a/coders/pnm.c	Sun Aug 20 17:31:35 2017 -0500
-+++ b/coders/pnm.c	Sun Aug 20 17:36:56 2017 -0500
-@@ -569,7 +569,7 @@
-           (void) LogMagickEvent(CoderEvent,GetMagickModule(),"Colors: %u",
-                                 image->colors);
-         }
--      number_pixels=image->columns*image->rows;
-+      number_pixels=MagickArraySize(image->columns,image->rows);
-       if (number_pixels == 0)
-         ThrowReaderException(CorruptImageError,NegativeOrZeroImageSize,image);
-       if (image->storage_class == PseudoClass)
-@@ -858,14 +858,14 @@
-		if (1 == bits_per_sample)
-		  {
-		    /* PBM */
--		    bytes_per_row=((image->columns+7) >> 3);
-+		    bytes_per_row=((image->columns+7U) >> 3);
-		    import_options.grayscale_miniswhite=MagickTrue;
-		    quantum_type=GrayQuantum;
-		  }
-		else
-		  {
-		    /* PGM & XV_332 */
--		    bytes_per_row=((bits_per_sample+7)/8)*image->columns;
-+		    bytes_per_row=MagickArraySize(((bits_per_sample+7U)/8U),image->columns);
-		    if (XV_332_Format == format)
-		      {
-			quantum_type=IndexQuantum;
-@@ -878,7 +878,8 @@
-	      }
-	    else
-	      {
--		bytes_per_row=(((bits_per_sample+7)/8)*samples_per_pixel)*image->columns;
-+		bytes_per_row=MagickArraySize((((bits_per_sample+7)/8)*samples_per_pixel),
-+                                              image->columns);
-		if (3 == samples_per_pixel)
-		  {
-		    /* PPM */
-@@ -915,6 +916,28 @@
-		    is_monochrome=MagickFalse;
-		  }
-	      }
-+
-+            /* Validate file size before allocating memory */
-+            if (BlobIsSeekable(image))
-+              {
-+                const magick_off_t file_size = GetBlobSize(image);
-+                const magick_off_t current_offset = TellBlob(image);
-+                if ((file_size > 0) &&
-+                    (current_offset > 0) &&
-+                    (file_size > current_offset))
-+                  {
-+                    const magick_off_t remaining = file_size-current_offset;
-+                    const magick_off_t needed = (magick_off_t) image->rows *
-+                      (magick_off_t) bytes_per_row;
-+                    if ((remaining < (magick_off_t) bytes_per_row) ||
-+                        (remaining < needed))
-+                      {
-+                        ThrowException(exception,CorruptImageError,UnexpectedEndOfFile,
-+                                       image->filename);
-+                        break;
-+                      }
-+                  }
-+              }
-
-             scanline_set=AllocateThreadViewDataArray(image,exception,bytes_per_row,1);
-             if (scanline_set == (ThreadViewDataSet *) NULL)
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch
deleted file mode 100644
index 1f55d90d38..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-14165.patch
+++ /dev/null
@@ -1,72 +0,0 @@
-http://hg.code.sf.net/p/graphicsmagick/code/raw-rev/493da54370aa
-http://openwall.com/lists/oss-security/2017/09/06/4
-
-some changes were made to make the patch apply
-
-# HG changeset patch
-# User Bob Friesenhahn <bfriesen@GraphicsMagick.org>
-# Date 1503257388 18000
-# Node ID 493da54370aa42cb430c52a69eb75db0001a5589
-# Parent  f8724674907902b7bc37c04f252fe30fbdd88e6f
-SUN: Verify that file header data length, and file length are sufficient for claimed image dimensions.
-
-diff -r f87246749079 -r 493da54370aa coders/sun.c
---- a/coders/sun.c	Sun Aug 20 12:21:03 2017 +0200
-+++ b/coders/sun.c	Sun Aug 20 14:29:48 2017 -0500
-@@ -498,6 +498,12 @@
-     if (sun_info.depth < 8)
-       image->depth=sun_info.depth;
- 
-+    if (image_info->ping)
-+      {
-+        CloseBlob(image);
-+        return(image);
-+      }
-+
-     /*
-       Compute bytes per line and bytes per image for an unencoded
-       image.
-@@ -522,15 +528,37 @@
-       if (bytes_per_image > sun_info.length)
-         ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
- 
--    if (image_info->ping)
--      {
--        CloseBlob(image);
--        return(image);
--      }
-     if (sun_info.type == RT_ENCODED)
-       sun_data_length=(size_t) sun_info.length;
-     else
-       sun_data_length=bytes_per_image;
-+
-+    /*
-+      Verify that data length claimed by header is supported by file size
-+    */
-+    if (sun_info.type == RT_ENCODED)
-+      {
-+        if (sun_data_length < bytes_per_image/255U)
-+          {
-+            ThrowReaderException(CorruptImageError,ImproperImageHeader,image);
-+          }
-+      }
-+    if (BlobIsSeekable(image))
-+      {
-+        const magick_off_t file_size = GetBlobSize(image);
-+        const magick_off_t current_offset = TellBlob(image);
-+        if ((file_size > 0) &&
-+            (current_offset > 0) &&
-+            (file_size > current_offset))
-+        {
-+          const magick_off_t remaining = file_size-current_offset;
-+          if (remaining < (magick_off_t) sun_data_length)
-+            {
-+              ThrowReaderException(CorruptImageError,UnexpectedEndOfFile,image);
-+            }
-+        }
-+      }
-+
-     sun_data=MagickAllocateMemory(unsigned char *,sun_data_length);
-     if (sun_data == (unsigned char *) NULL)
-       ThrowReaderException(ResourceLimitError,MemoryAllocationFailed,image);
-
diff --git a/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch b/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch
deleted file mode 100644
index 8e1166ba7a..0000000000
--- a/gnu/packages/patches/graphicsmagick-CVE-2017-14649.patch
+++ /dev/null
@@ -1,210 +0,0 @@
-http://hg.code.sf.net/p/graphicsmagick/code/rev/358608a46f0a
-http://www.openwall.com/lists/oss-security/2017/09/22/2
-
-Some changes were made to make the patch apply.
-
-Notably, the DestroyJNG() function in the upstream diff has been replaced by
-its equivalent, a series of calls to MagickFreeMemory(), DestroyImageInfo(),
-and DestroyImage(). See
-http://hg.code.sf.net/p/graphicsmagick/code/rev/d445af60a8d5.
-
-# HG changeset patch
-# User Glenn Randers-Pehrson <glennrp+bmo@gmail.com>
-# Date 1504014487 14400
-# Node ID 358608a46f0a9c55e9bb8b37d09bf1ac9bc87f06
-# Parent  38c362f0ae5e7a914c3fe822284c6953f8e6eee2
-Fix Issue 439
-
-diff -ru a/coders/png.c b/coders/png.c
---- a/coders/png.c	1969-12-31 19:00:00.000000000 -0500
-+++ b/coders/png.c	2017-09-30 08:20:16.218944991 -0400
-@@ -1176,15 +1176,15 @@
-   /* allocate space */
-   if (length == 0)
-     {
--      (void) ThrowException2(&image->exception,CoderWarning,
--                             "invalid profile length",(char *) NULL);
-+      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+          "invalid profile length");
-       return (MagickFail);
-     }
-   info=MagickAllocateMemory(unsigned char *,length);
-   if (info == (unsigned char *) NULL)
-     {
--      (void) ThrowException2(&image->exception,CoderWarning,
--                             "unable to copy profile",(char *) NULL);
-+      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+          "Unable to copy profile");
-       return (MagickFail);
-     }
-   /* copy profile, skipping white space and column 1 "=" signs */
-@@ -1197,8 +1197,8 @@
-           if (*sp == '\0')
-             {
-               MagickFreeMemory(info);
--              (void) ThrowException2(&image->exception,CoderWarning,
--                                     "ran out of profile data",(char *) NULL);
-+              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                  "ran out of profile data");
-               return (MagickFail);
-             }
-           sp++;
-@@ -1234,8 +1234,9 @@
-   if(SetImageProfile(image,profile_name,info,length) == MagickFail)
-     {
-       MagickFreeMemory(info);
--      (void) ThrowException(&image->exception,ResourceLimitError,
--                            MemoryAllocationFailed,"unable to copy profile");
-+      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+           "unable to copy profile");
-+      return MagickFail;
-     }
-   MagickFreeMemory(info);
-   return MagickTrue;
-@@ -3285,7 +3286,6 @@
-               if (status == MagickFalse)
-                 {
-                   DestroyJNGInfo(color_image_info,alpha_image_info);
--                  DestroyImage(alpha_image);
-                   (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-                       "    could not allocate alpha_image blob");
-                   return ((Image *)NULL);
-@@ -3534,7 +3534,7 @@
-       CloseBlob(color_image);
-       if (logging)
-         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
--                              "    Reading jng_image from color_blob.");
-+            "    Reading jng_image from color_blob.");
-
-       FormatString(color_image_info->filename,"%.1024s",color_image->filename);
-
-@@ -3558,13 +3558,18 @@
-
-       if (logging)
-         (void) LogMagickEvent(CoderEvent,GetMagickModule(),
--                              "    Copying jng_image pixels to main image.");
-+            "    Copying jng_image pixels to main image.");
-       image->rows=jng_height;
-       image->columns=jng_width;
-       length=image->columns*sizeof(PixelPacket);
-+      if ((jng_height == 0 || jng_width == 0) && logging)
-+        (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+            "    jng_width=%lu jng_height=%lu",
-+            (unsigned long)jng_width,(unsigned long)jng_height);
-       for (y=0; y < (long) image->rows; y++)
-         {
--          s=AcquireImagePixels(jng_image,0,y,image->columns,1,&image->exception);
-+          s=AcquireImagePixels(jng_image,0,y,image->columns,1,
-+             &image->exception);
-           q=SetImagePixels(image,0,y,image->columns,1);
-           (void) memcpy(q,s,length);
-           if (!SyncImagePixels(image))
-@@ -3589,45 +3594,79 @@
-               CloseBlob(alpha_image);
-               if (logging)
-                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
--                                      "    Reading opacity from alpha_blob.");
-+                     "    Reading opacity from alpha_blob.");
-
-               FormatString(alpha_image_info->filename,"%.1024s",
-                            alpha_image->filename);
-
-               jng_image=ReadImage(alpha_image_info,exception);
-
--              for (y=0; y < (long) image->rows; y++)
-+              if (jng_image == (Image *)NULL)
-                 {
--                  s=AcquireImagePixels(jng_image,0,y,image->columns,1,
--                                       &image->exception);
--                  if (image->matte)
--                    {
--                      q=SetImagePixels(image,0,y,image->columns,1);
--                      for (x=(long) image->columns; x > 0; x--,q++,s++)
--                        q->opacity=(Quantum) MaxRGB-s->red;
--                    }
--                  else
-+                  (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                       "    jng_image is NULL.");
-+                  if (color_image_info)
-+                    DestroyImageInfo(color_image_info);
-+                  if (alpha_image_info)
-+                    DestroyImageInfo(alpha_image_info);
-+                  if (color_image)
-+                    DestroyImage(color_image);
-+                  if (alpha_image)
-+                    DestroyImage(alpha_image);
-+                }
-+              else
-+                {
-+
-+                  if (logging)
-                     {
--                      q=SetImagePixels(image,0,y,image->columns,1);
--                      for (x=(long) image->columns; x > 0; x--,q++,s++)
--                        {
--                          q->opacity=(Quantum) MaxRGB-s->red;
--                          if (q->opacity != OpaqueOpacity)
--                            image->matte=MagickTrue;
--                        }
-+                      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                          "    Read jng_image.");
-+                      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                          "      jng_image->width=%lu, jng_image->height=%lu",
-+                          (unsigned long)jng_width,(unsigned long)jng_height);
-+                      (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                          "      image->rows=%lu, image->columns=%lu",
-+                         (unsigned long)image->rows,
-+                         (unsigned long)image->columns);
-                     }
--                  if (!SyncImagePixels(image))
--                    break;
--                }
--              (void) LiberateUniqueFileResource(alpha_image->filename);
--              DestroyImage(alpha_image);
--              alpha_image = (Image *)NULL;
--              DestroyImageInfo(alpha_image_info);
--              alpha_image_info = (ImageInfo *)NULL;
--              (void) LogMagickEvent(CoderEvent,GetMagickModule(),
--                  " Destroy the JNG image");
--              DestroyImage(jng_image);
--              jng_image = (Image *)NULL;
-+
-+                  for (y=0; y < (long) image->rows; y++)
-+                   {
-+                     s=AcquireImagePixels(jng_image,0,y,image->columns,1,
-+                                          &image->exception);
-+                     if (image->matte)
-+                       {
-+                         q=SetImagePixels(image,0,y,image->columns,1);
-+                         for (x=(long) image->columns; x > 0; x--,q++,s++)
-+                           q->opacity=(Quantum) MaxRGB-s->red;
-+                       }
-+                     else
-+                       {
-+                         q=SetImagePixels(image,0,y,image->columns,1);
-+                         for (x=(long) image->columns; x > 0; x--,q++,s++)
-+                           {
-+                             q->opacity=(Quantum) MaxRGB-s->red;
-+                             if (q->opacity != OpaqueOpacity)
-+                               image->matte=MagickTrue;
-+                           }
-+                       }
-+                     if (!SyncImagePixels(image))
-+                       break;
-+                   }
-+                 (void) LiberateUniqueFileResource(alpha_image->filename);
-+                 if (color_image_info)
-+                   DestroyImageInfo(color_image_info);
-+                 if (alpha_image_info)
-+                   DestroyImageInfo(alpha_image_info);
-+                 if (color_image)
-+                   DestroyImage(color_image);
-+                 if (alpha_image)
-+                   DestroyImage(alpha_image);
-+                 (void) LogMagickEvent(CoderEvent,GetMagickModule(),
-+                     " Destroy the JNG image");
-+                 DestroyImage(jng_image);
-+                 jng_image = (Image *)NULL;
-+               }
-             }
-         }