summaryrefslogtreecommitdiff
path: root/graphics/gdk-pixbuf2
diff options
context:
space:
mode:
authordrochner <drochner>2011-07-08 11:31:24 +0000
committerdrochner <drochner>2011-07-08 11:31:24 +0000
commitd2555c065450b9b86dc019c07b0deb0fef1b5a81 (patch)
tree493fd876adaa4c5e6872d31f16f515cc5952b617 /graphics/gdk-pixbuf2
parent3075601de4d62732794510229eebef5ef29e9767 (diff)
downloadpkgsrc-d2555c065450b9b86dc019c07b0deb0fef1b5a81.tar.gz
add patch from upstream to fix excessive memory use due improper checking
of certain return values in GIF image loader (CVE-2011-2485) bump PKGREV
Diffstat (limited to 'graphics/gdk-pixbuf2')
-rw-r--r--graphics/gdk-pixbuf2/Makefile4
-rw-r--r--graphics/gdk-pixbuf2/distinfo3
-rw-r--r--graphics/gdk-pixbuf2/patches/patch-ag41
3 files changed, 45 insertions, 3 deletions
diff --git a/graphics/gdk-pixbuf2/Makefile b/graphics/gdk-pixbuf2/Makefile
index 7760f593e7c..59a01445310 100644
--- a/graphics/gdk-pixbuf2/Makefile
+++ b/graphics/gdk-pixbuf2/Makefile
@@ -1,9 +1,9 @@
-# $NetBSD: Makefile,v 1.5 2011/04/22 13:42:26 obache Exp $
+# $NetBSD: Makefile,v 1.6 2011/07/08 11:31:24 drochner Exp $
#
DISTNAME= gdk-pixbuf-2.22.1
PKGNAME= gdk-pixbuf2-2.22.1
-PKGREVISION= 2
+PKGREVISION= 3
CATEGORIES= graphics
MASTER_SITES= ${MASTER_SITE_GNOME:=sources/gdk-pixbuf/2.22/}
EXTRACT_SUFX= .tar.bz2
diff --git a/graphics/gdk-pixbuf2/distinfo b/graphics/gdk-pixbuf2/distinfo
index fadf861a6ef..c1d13e1e7d7 100644
--- a/graphics/gdk-pixbuf2/distinfo
+++ b/graphics/gdk-pixbuf2/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.6 2011/01/24 12:29:42 wiz Exp $
+$NetBSD: distinfo,v 1.7 2011/07/08 11:31:24 drochner Exp $
SHA1 (gdk-pixbuf-2.22.1.tar.bz2) = b452208963ddd84f7280865695b50255fcafaa2e
RMD160 (gdk-pixbuf-2.22.1.tar.bz2) = d05d6642e147281b7dc1dd21657595333f13f6f1
@@ -9,3 +9,4 @@ SHA1 (patch-ac) = f8c8ff3175cee6a88938a0aaa081d3bd832a050d
SHA1 (patch-ad) = 224ce909009d1d0ac42ba938987877c39b9aa380
SHA1 (patch-ae) = e13fe0ad5a3e313bc4d6daa3c30f00fb66788534
SHA1 (patch-af) = 4f7de87f3e840ceb282885ab806648e8dba28cff
+SHA1 (patch-ag) = ac7a5823167eb476c88eb0fe3fde88ccd1b70cf0
diff --git a/graphics/gdk-pixbuf2/patches/patch-ag b/graphics/gdk-pixbuf2/patches/patch-ag
new file mode 100644
index 00000000000..79fcff2da4c
--- /dev/null
+++ b/graphics/gdk-pixbuf2/patches/patch-ag
@@ -0,0 +1,41 @@
+$NetBSD: patch-ag,v 1.1 2011/07/08 11:31:24 drochner Exp $
+
+CVE-2011-2485
+
+--- gdk-pixbuf/io-gif.c.orig 2010-07-10 00:54:13.000000000 +0000
++++ gdk-pixbuf/io-gif.c
+@@ -1455,6 +1455,7 @@ gdk_pixbuf__gif_image_load (FILE *file,
+ {
+ GifContext *context;
+ GdkPixbuf *pixbuf;
++ gint retval;
+
+ g_return_val_if_fail (file != NULL, NULL);
+
+@@ -1472,19 +1473,25 @@ gdk_pixbuf__gif_image_load (FILE *file,
+ context->error = error;
+ context->stop_after_first_frame = TRUE;
+
+- if (gif_main_loop (context) == -1 || context->animation->frames == NULL) {
++ retval = gif_main_loop (context);
++ if (retval == -1 || context->animation->frames == NULL) {
+ if (context->error && *(context->error) == NULL)
+ g_set_error_literal (context->error,
+ GDK_PIXBUF_ERROR,
+ GDK_PIXBUF_ERROR_CORRUPT_IMAGE,
+ _("GIF file was missing some data (perhaps it was truncated somehow?)"));
+ }
++ else if (retval == -2) {
++ pixbuf = NULL;
++ goto out;
++ }
+
+ pixbuf = gdk_pixbuf_animation_get_static_image (GDK_PIXBUF_ANIMATION (context->animation));
+
+ if (pixbuf)
+ g_object_ref (pixbuf);
+
++out:
+ g_object_unref (context->animation);
+
+ g_free (context->buf);