media-libs/imlib2: add upstream fix for gif oob reads #578810
authorMike Frysinger <vapier@gentoo.org>
Tue, 5 Apr 2016 17:28:08 +0000 (13:28 -0400)
committerMike Frysinger <vapier@gentoo.org>
Tue, 5 Apr 2016 17:28:14 +0000 (13:28 -0400)
media-libs/imlib2/files/imlib2-1.4.8-gif-oob.patch [new file with mode: 0644]
media-libs/imlib2/imlib2-1.4.8-r1.ebuild [moved from media-libs/imlib2/imlib2-1.4.8.ebuild with 84% similarity]

diff --git a/media-libs/imlib2/files/imlib2-1.4.8-gif-oob.patch b/media-libs/imlib2/files/imlib2-1.4.8-gif-oob.patch
new file mode 100644 (file)
index 0000000..ed29757
--- /dev/null
@@ -0,0 +1,39 @@
+From 16de244bd03d2f75da6508feb1ad9cb4e668e9dc Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Bernhard=20=C3=9Cbelacker?= <bernhardu@vr-web.de>
+Date: Sat, 2 Apr 2016 13:05:21 -0400
+Subject: [PATCH] gif: fix oob reads w/bad colormaps
+
+Verify the color map is inbounds before indexing with it.
+
+https://bugs.debian.org/785369
+---
+ src/modules/loaders/loader_gif.c | 13 ++++++++++---
+ 1 file changed, 10 insertions(+), 3 deletions(-)
+
+diff --git a/src/modules/loaders/loader_gif.c b/src/modules/loaders/loader_gif.c
+index 638df59..7bdf29c 100644
+--- a/src/modules/loaders/loader_gif.c
++++ b/src/modules/loaders/loader_gif.c
+@@ -170,9 +170,16 @@ load(ImlibImage * im, ImlibProgressFunction progress, char progress_granularity,
+                     }
+                   else
+                     {
+-                       r = cmap->Colors[rows[i][j]].Red;
+-                       g = cmap->Colors[rows[i][j]].Green;
+-                       b = cmap->Colors[rows[i][j]].Blue;
++                       if (rows[i][j] < cmap->ColorCount)
++                         {
++                            r = cmap->Colors[rows[i][j]].Red;
++                            g = cmap->Colors[rows[i][j]].Green;
++                            b = cmap->Colors[rows[i][j]].Blue;
++                         }
++                       else
++                         {
++                            r = g = b = 0;
++                         }
+                        *ptr++ = (0xff << 24) | (r << 16) | (g << 8) | b;
+                     }
+                   per += per_inc;
+-- 
+2.7.4
+
similarity index 84%
rename from media-libs/imlib2/imlib2-1.4.8.ebuild
rename to media-libs/imlib2/imlib2-1.4.8-r1.ebuild
index 9856d982453b2b03def1d6be37d8dd8c39454ef6..76973db08cf1f0e1361cb51052b79fb4af856bb9 100644 (file)
@@ -11,11 +11,13 @@ if [[ ${PV} != "9999" ]] ; then
        EKEY_STATE="snap"
 fi
 
-inherit enlightenment toolchain-funcs multilib-minimal
+inherit enlightenment toolchain-funcs multilib-minimal eutils
 
 DESCRIPTION="Version 2 of an advanced replacement library for libraries like libXpm"
 HOMEPAGE="https://www.enlightenment.org/"
 
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~mips ~ppc ~ppc64 ~sh ~sparc ~x86 ~amd64-fbsd ~x86-fbsd ~x86-interix ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~x64-solaris ~x86-solaris"
+
 IUSE="bzip2 gif jpeg cpu_flags_x86_mmx cpu_flags_x86_sse2 mp3 png static-libs tiff X zlib"
 
 RDEPEND="=media-libs/freetype-2*[${MULTILIB_USEDEP}]
@@ -37,6 +39,11 @@ DEPEND="${RDEPEND}
                >=x11-proto/xproto-7.0.24[${MULTILIB_USEDEP}]
        )"
 
+src_prepare() {
+       epatch "${FILESDIR}"/${P}-gif-oob.patch #578810
+       enlightenment_src_prepare
+}
+
 multilib_src_configure() {
        # imlib2 has diff configure options for x86/amd64 assembly
        if [[ $(tc-arch) == amd64 ]]; then