Revision bump with a modified patch to fix vulnerabilities in the XPM loader (bug...
authorLeonardo Boshell <leonardop@gentoo.org>
Tue, 15 Nov 2005 16:27:41 +0000 (16:27 +0000)
committerLeonardo Boshell <leonardop@gentoo.org>
Tue, 15 Nov 2005 16:27:41 +0000 (16:27 +0000)
Package-Manager: portage-2.0.53_rc7

media-libs/gdk-pixbuf/ChangeLog
media-libs/gdk-pixbuf/Manifest
media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r2 [deleted file]
media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r4 [deleted file]
media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r5 [moved from media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0 with 100% similarity]
media-libs/gdk-pixbuf/files/gdk-pixbuf-0.22.0-loaders.patch
media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r2.ebuild [deleted file]
media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild [moved from media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r4.ebuild with 92% similarity]
media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0.ebuild [deleted file]

index a4cf789c759d58034a87b0ef2b62d416ffab7572..019e905c6ba7767e3adfb060af99bdecbda62a68 100644 (file)
@@ -1,6 +1,14 @@
 # ChangeLog for media-libs/gdk-pixbuf
-# Copyright 2002-2004 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/ChangeLog,v 1.41 2004/12/29 00:43:15 ciaranm Exp $
+# Copyright 2002-2005 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/ChangeLog,v 1.42 2005/11/15 16:27:41 leonardop Exp $
+
+*gdk-pixbuf-0.22.0-r5 (15 Nov 2005)
+
+  15 Nov 2005; Leonardo Boshell <leonardop@gentoo.org>
+  files/gdk-pixbuf-0.22.0-loaders.patch, +gdk-pixbuf-0.22.0-r5.ebuild:
+  Modified patch to fix a few more probems with the XPM loader (bug #112608).
+  Revision bump to propagate the changes, and marked stable on all arches that
+  reported back successful testing.
 
   29 Dec 2004; Ciaran McCreesh <ciaranm@gentoo.org> :
   Change encoding to UTF-8 for GLEP 31 compliance
index 47832630f7c63071b56ca41c5e7f1e5533ae092a..4f5209aec893f3cd46b5058b80b7c4e9ca7a4691 100644 (file)
@@ -1,14 +1,10 @@
-MD5 c8b5e670856dfc60c58cf653f8c5372e ChangeLog 5943
-MD5 3826b463f06d731336873a516b683bd4 gdk-pixbuf-0.22.0-r2.ebuild 1502
-MD5 18aa044e5155ebc7a6cd0e32c86c5de1 gdk-pixbuf-0.22.0.ebuild 1306
-MD5 03ad2e6c4ab41244af1015a8bbb0b39f metadata.xml 158
-MD5 9dcfbabc6910dbdf835de445608d844d gdk-pixbuf-0.22.0-r3.ebuild 1678
-MD5 598879cf073da6fe3495b1ae5feca191 gdk-pixbuf-0.22.0-r4.ebuild 1706
-MD5 7cb705de10c34e6b633af2ff2912e908 files/digest-gdk-pixbuf-0.22.0 70
-MD5 7cb705de10c34e6b633af2ff2912e908 files/digest-gdk-pixbuf-0.22.0-r2 70
+MD5 7f9ba40aad99773aec8b2674f2be3348 ChangeLog 6302
 MD5 7cb705de10c34e6b633af2ff2912e908 files/digest-gdk-pixbuf-0.22.0-r3 70
-MD5 5f59d5772b1482d885a180dbc581cf84 files/gdk-pixbuf-0.22.0-bmp_secure.patch 557
-MD5 6311cee2e3fa5106adf17758b5dab6c6 files/gdk-pixbuf-0.22.0-loaders.patch 2307
-MD5 7cb705de10c34e6b633af2ff2912e908 files/digest-gdk-pixbuf-0.22.0-r4 70
+MD5 7cb705de10c34e6b633af2ff2912e908 files/digest-gdk-pixbuf-0.22.0-r5 70
 MD5 d1fb93f1ae994875158a7e0c108c36f8 files/gdk-pixbuf-0.22.0-bmp_reject_corrupt.patch 1157
+MD5 5f59d5772b1482d885a180dbc581cf84 files/gdk-pixbuf-0.22.0-bmp_secure.patch 557
+MD5 3cf31ae0509747f72ac27a9fd96109c2 files/gdk-pixbuf-0.22.0-loaders.patch 3589
 MD5 3edfa9fe9382fd8206d6238ec121a5af files/gdk-pixbuf-0.22.0-m4.patch 276
+MD5 9dcfbabc6910dbdf835de445608d844d gdk-pixbuf-0.22.0-r3.ebuild 1678
+MD5 ab86f21098aee2ea1352cee4da3fb668 gdk-pixbuf-0.22.0-r5.ebuild 1703
+MD5 03ad2e6c4ab41244af1015a8bbb0b39f metadata.xml 158
diff --git a/media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r2 b/media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r2
deleted file mode 100644 (file)
index ce45f33..0000000
+++ /dev/null
@@ -1 +0,0 @@
-MD5 05fcb68ceaa338614ab650c775efc2f2 gdk-pixbuf-0.22.0.tar.bz2 398208
diff --git a/media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r4 b/media-libs/gdk-pixbuf/files/digest-gdk-pixbuf-0.22.0-r4
deleted file mode 100644 (file)
index ce45f33..0000000
+++ /dev/null
@@ -1 +0,0 @@
-MD5 05fcb68ceaa338614ab650c775efc2f2 gdk-pixbuf-0.22.0.tar.bz2 398208
index 9fbe93f59bef4a6e931561752b9ac6d92ed9deb0..068653808c031a53e66f3dccf6a4bf898c945a71 100644 (file)
@@ -1,5 +1,6 @@
---- gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c.loaders      2004-09-15 13:32:28.397302000 -0400
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c      2004-09-15 13:32:28.441258000 -0400
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-ico.c      2002-09-27 17:19:15.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-ico.c      2005-10-27 11:28:23.000000000 -0500
 @@ -330,6 +330,9 @@
  
        State->HeaderSize+=I;
@@ -10,8 +11,9 @@
        if (State->HeaderSize>State->BytesInHeaderBuf) {
                guchar *tmp=realloc(State->HeaderBuf,State->HeaderSize);
                if (!tmp)
---- gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c.loaders      2001-03-01 15:16:28.000000000 -0500
-+++ gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c      2004-09-15 13:41:09.804373000 -0400
+diff -NurdB gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c
+--- gdk-pixbuf-0.22.0/gdk-pixbuf/io-xpm.c      2001-03-01 15:16:28.000000000 -0500
++++ gdk-pixbuf-0.22.0-patched/gdk-pixbuf/io-xpm.c      2005-10-27 11:29:14.000000000 -0500
 @@ -243,8 +243,8 @@
                        break;
                else {
                        }
  
                        strncat (color, temp, space);
-@@ -352,16 +352,31 @@
+@@ -281,7 +281,8 @@
+               /* Fall through to the xpm_read_string. */
+ 
+       case op_body:
+-              xpm_read_string (h->infile, &h->buffer, &h->buffer_size);
++              if(!xpm_read_string (h->infile, &h->buffer, &h->buffer_size))
++                      return NULL;
+               return h->buffer;
+ 
+       default:
+@@ -317,13 +318,6 @@
+       return NULL;
+ }
+ 
+-/* Destroy notification function for the pixbuf */
+-static void
+-free_buffer (guchar *pixels, gpointer data)
+-{
+-      free (pixels);
+-}
+-
+ static gboolean
+ xpm_color_parse (const char *spec, XColor *color)
+ {
+@@ -342,7 +336,8 @@
+       gchar pixel_str[32];
+       GHashTable *color_hash;
+       _XPMColor *colors, *color, *fallbackcolor;
+-      guchar *pixels, *pixtmp;
++      guchar *pixtmp;
++      GdkPixbuf* pixbuf;
+ 
+       fallbackcolor = NULL;
+ 
+@@ -352,16 +347,33 @@
                return NULL;
        }
        sscanf (buffer, "%d %d %d %d", &w, &h, &n_col, &cpp);
@@ -33,7 +69,9 @@
 +              g_warning ("XPM has invalid number of chars per pixel.");
                return NULL;
        }
-+      if (n_col <= 0 || n_col >= G_MAXINT / (cpp + 1)) {
++      if (n_col <= 0 ||
++          n_col >= G_MAXINT / (cpp + 1) ||
++          n_col >= G_MAXINT / sizeof (_XPMColor)) {
 +              g_warning ("XPM file has invalid number of colors");
 +              return NULL;
 +      }
  
 -      name_buf = g_new (gchar, n_col * (cpp + 1));
 -      colors = g_new (_XPMColor, n_col);
-+      name_buf = malloc (n_col * (cpp + 1));
++      name_buf = g_new (gchar, n_col * (cpp + 1));
 +      if (!name_buf) {
 +              g_warning ("Cannot allocate memory for loading XPM image");
 +              g_hash_table_destroy (color_hash);
 +              return NULL;
 +      }
-+      colors = (_XPMColor *) malloc (sizeof (_XPMColor) * n_col);
++      colors = g_new (_XPMColor, n_col);
 +      if (!colors) {
 +              g_warning ("Cannot allocate memory for loading XPM image");
 +              g_hash_table_destroy (color_hash);
-+              free (name_buf);
++              g_free (name_buf);
 +              return NULL;
 +      }
  
        for (cnt = 0; cnt < n_col; cnt++) {
                gchar *color_name;
-@@ -404,8 +419,8 @@
+@@ -397,12 +409,8 @@
+                       fallbackcolor = color;
+       }
  
-       if (!pixels) {
+-      if (is_trans)
+-              pixels = malloc (w * h * 4);
+-      else
+-              pixels = malloc (w * h * 3);
+-
+-      if (!pixels) {
++      pixbuf = gdk_pixbuf_new(GDK_COLORSPACE_RGB, is_trans, 8, w, h);
++      if (!pixbuf) {
                g_hash_table_destroy (color_hash);
--              g_free (colors);
--              g_free (name_buf);
-+              free (colors);
-+              free (name_buf);
-               return NULL;
+               g_free (colors);
+               g_free (name_buf);
+@@ -410,7 +418,7 @@
        }
  
-@@ -440,8 +455,8 @@
-       }
+       wbytes = w * cpp;
+-      pixtmp = pixels;
++      pixtmp = pixbuf->pixels;
+ 
+       for (ycnt = 0; ycnt < h; ycnt++) {
+               buffer = (*get_buf) (op_body, handle);
+@@ -443,9 +451,7 @@
+       g_free (colors);
+       g_free (name_buf);
  
-       g_hash_table_destroy (color_hash);
--      g_free (colors);
--      g_free (name_buf);
-+      free (colors);
-+      free (name_buf);
+-      return gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, is_trans, 8,
+-                                       w, h, is_trans ? (w * 4) : (w * 3),
+-                                       free_buffer, NULL);
++      return pixbuf;
+ }
  
-       return gdk_pixbuf_new_from_data (pixels, GDK_COLORSPACE_RGB, is_trans, 8,
-                                        w, h, is_trans ? (w * 4) : (w * 3),
+ /* Shared library entry point for file loading */
diff --git a/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r2.ebuild b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r2.ebuild
deleted file mode 100644 (file)
index 38bd000..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r2.ebuild,v 1.15 2004/11/08 15:49:17 vapier Exp $
-
-inherit virtualx libtool gnome.org gnuconfig
-
-DESCRIPTION="GNOME Image Library"
-HOMEPAGE="http://www.gtk.org/"
-
-LICENSE="GPL-2 LGPL-2"
-SLOT="0"
-KEYWORDS="alpha amd64 arm hppa ia64 mips ppc ppc64 sparc x86"
-IUSE="doc mmx"
-
-RDEPEND="media-libs/jpeg
-       media-libs/tiff
-       =x11-libs/gtk+-1.2*
-       >=media-libs/libpng-1.2.1
-       amd64? ( sys-libs/db )
-       !amd64? ( <sys-libs/db-2 )
-       >=gnome-base/gnome-libs-1.4.1.2-r1"
-# We need gnome-libs here, else gnome support do not get compiled into
-# gdk-pixbuf (the GnomeCanvasPixbuf library )
-DEPEND="${RDEPEND}
-       doc? ( dev-util/gtk-doc )"
-
-src_compile() {
-       #allow to build on mipslinux systems
-       gnuconfig_update
-
-       local myconf
-       #update libtool, else we get the "relink bug"
-       elibtoolize
-
-       use doc && myconf="--enable-gtk-doc" \
-               || myconf="--disable-gtk-doc"
-       use mmx || myconf="${myconf} --disable-mmx"
-       econf --sysconfdir=/etc/X11/gdk-pixbuf ${myconf}  || die
-
-       #build needs to be able to
-       #connect to an X display.
-       Xemake || die
-}
-
-src_install() {
-       einstall \
-               sysconfdir=${D}/etc/X11/gdk-pixbuf || die
-
-       dosed -e "s:${D}::g" /usr/bin/gdk-pixbuf-config
-       #fix permissions on the loaders
-       chmod a+rx ${D}/usr/lib/gdk-pixbuf/loaders
-       chmod a+r ${D}/usr/lib/gdk-pixbuf/loaders/*
-
-       dodoc AUTHORS COPYING* ChangeLog INSTALL README NEWS TODO
-}
similarity index 92%
rename from media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r4.ebuild
rename to media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild
index 3d036b87486de5e97c93bd3c3fd777476ce1844b..e14caaaee3c83cd6bbddeed59db6de216355fac1 100644 (file)
@@ -1,6 +1,6 @@
 # Copyright 1999-2005 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r4.ebuild,v 1.2 2005/04/29 01:13:48 vapier Exp $
+# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0-r5.ebuild,v 1.1 2005/11/15 16:27:41 leonardop Exp $
 
 inherit virtualx libtool gnome.org eutils
 
@@ -9,7 +9,7 @@ HOMEPAGE="http://www.gtk.org/"
 
 LICENSE="GPL-2 LGPL-2"
 SLOT="0"
-KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sparc ~x86"
+KEYWORDS="alpha amd64 ~arm hppa ~ia64 ~mips ppc ppc64 sparc x86"
 IUSE="doc mmx"
 
 RDEPEND="media-libs/jpeg
@@ -27,6 +27,7 @@ DEPEND="${RDEPEND}
 src_unpack() {
        unpack ${A}
        cd "${S}"
+
        epatch "${FILESDIR}"/${P}-m4.patch
        # security fix (#64230)
        epatch "${FILESDIR}"/${P}-bmp_secure.patch
diff --git a/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0.ebuild b/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0.ebuild
deleted file mode 100644 (file)
index 0a41637..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-# Copyright 1999-2004 Gentoo Foundation
-# Distributed under the terms of the GNU General Public License v2
-# $Header: /var/cvsroot/gentoo-x86/media-libs/gdk-pixbuf/gdk-pixbuf-0.22.0.ebuild,v 1.11 2004/07/14 19:36:25 agriffis Exp $
-
-inherit virtualx libtool gnome.org
-
-IUSE="doc"
-DESCRIPTION="GNOME Image Library"
-HOMEPAGE="http://www.gtk.org/"
-
-RDEPEND="media-libs/jpeg
-       media-libs/tiff
-       =x11-libs/gtk+-1.2*
-       >=media-libs/libpng-1.2.1
-       >=gnome-base/gnome-libs-1.4.1.2-r1"
-# We need gnome-libs here, else gnome support do not get compiled into
-# gdk-pixbuf (the GnomeCanvasPixbuf library )
-
-DEPEND="${RDEPEND}
-       doc? ( dev-util/gtk-doc )"
-
-SLOT="0"
-LICENSE="GPL-2 LGPL-2"
-KEYWORDS="x86 ppc ~sparc alpha hppa ~amd64"
-
-src_compile() {
-       local myconf
-       #update libtool, else we get the "relink bug"
-       elibtoolize
-
-       use doc && myconf="--enable-gtk-doc" \
-               || myconf="--disable-gtk-doc"
-
-       econf --sysconfdir=/etc/X11/gdk-pixbuf || die
-
-       #build needs to be able to
-       #connect to an X display.
-       Xemake || die
-}
-
-src_install() {
-       einstall \
-               sysconfdir=${D}/etc/X11/gdk-pixbuf || die
-
-       dosed -e "s:${D}::g" /usr/bin/gdk-pixbuf-config
-       #fix permissions on the loaders
-       chmod a+rx ${D}/usr/lib/gdk-pixbuf/loaders
-       chmod a+r ${D}/usr/lib/gdk-pixbuf/loaders/*
-
-       dodoc AUTHORS COPYING* ChangeLog INSTALL README NEWS TODO
-}