~ruther/guix-local

6d7d9d9507484773eff697a01f422ea984936373 — Kei Kebreau 8 years ago a8cd352
gnu: graphicsmagick: Fix CVE-2017-{12935,12936,12937}.

* gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch,
gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch,
gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch: New files.
* gnu/local.mk (dist_patch_DATA): Add them.
* gnu/packages/imagemagick.scm (graphicsmagick)[source]: Use them.
M gnu/local.mk => gnu/local.mk +3 -0
@@ 679,6 679,9 @@ 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-12935.patch	\
  %D%/packages/patches/graphicsmagick-CVE-2017-12936.patch	\
  %D%/packages/patches/graphicsmagick-CVE-2017-12937.patch	\
  %D%/packages/patches/graphite2-ffloat-store.patch		\
  %D%/packages/patches/grep-timing-sensitive-test.patch		\
  %D%/packages/patches/gsl-test-i686.patch			\

M gnu/packages/imagemagick.scm => gnu/packages/imagemagick.scm +5 -1
@@ 175,7 175,11 @@ script.")
                                 "/GraphicsMagick-" version ".tar.xz")))
              (sha256
               (base32
                "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"))))
                "122zgs96dqrys62mnh8x5yvfff6km4d3yrnvaxzg3mg5sprib87v"))
              (patches
               (search-patches "graphicsmagick-CVE-2017-12935.patch"
                               "graphicsmagick-CVE-2017-12936.patch"
                               "graphicsmagick-CVE-2017-12937.patch"))))
    (build-system gnu-build-system)
    (arguments
     `(#:configure-flags

A gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch => gnu/packages/patches/graphicsmagick-CVE-2017-12935.patch +28 -0
@@ 0,0 1,28 @@
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;

A gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch => gnu/packages/patches/graphicsmagick-CVE-2017-12936.patch +16 -0
@@ 0,0 1,16 @@
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()");

A gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch => gnu/packages/patches/graphicsmagick-CVE-2017-12937.patch +28 -0
@@ 0,0 1,28 @@
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];
               }