Hello community, here is the log from the commit of package gimp for openSUSE:11.4 checked in at Fri Sep 16 19:04:07 CEST 2011.
-------- --- old-versions/11.4/UPDATES/all/gimp/gimp.changes 2011-07-13 00:36:50.000000000 +0200 +++ 11.4/gimp/gimp.changes 2011-09-09 15:05:36.000000000 +0200 @@ -1,0 +2,6 @@ +Fri Sep 9 13:03:51 UTC 2011 - vu...@opensuse.org + +- Add gimp-CVE-2011-2896.patch: Fix heap corruption and buffer + overflow in LZW code. Fix bnc#711491, CVE-2011-2896. + +------------------------------------------------------------------- calling whatdependson for 11.4-i586 New: ---- gimp-CVE-2011-2896.patch ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ gimp.spec ++++++ --- /var/tmp/diff_new_pack.f9exLd/_old 2011-09-16 19:03:01.000000000 +0200 +++ /var/tmp/diff_new_pack.f9exLd/_new 2011-09-16 19:03:01.000000000 +0200 @@ -49,7 +49,7 @@ BuildRequires: xorg-x11-libXfixes-devel Url: http://www.gimp.org/ Version: 2.6.11 -Release: 13.<RELEASE16> +Release: 13.<RELEASE18> License: GPLv2+ Group: Productivity/Graphics/Bitmap Editors Suggests: AdobeICCProfiles @@ -69,6 +69,8 @@ Patch1: gimp-CVE-2010-4543.patch # PATCH-FIX-UPSTREAM gimp-pyslice-cellspacing-fix.patch bgo#641259 bnc#698769 fi...@opensuse.org -- py-slice cellspacing fix Patch2: gimp-pyslice-cellspacing-fix.patch +# PATCH-FIX-UPSTREAM gimp-CVE-2011-2896.patch CVE-2011-2896 bnc#711491 vu...@opensuse.org -- Fix heap corruption and buffer overflow +Patch5: gimp-CVE-2011-2896.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build Requires: %{name}-branding >= 2.4 Recommends: %{name}-plugins-python = %{version} gimp-2.0-scanner-plugin %{name}-help-browser @@ -247,6 +249,7 @@ %patch0 -p1 %patch1 -p1 %patch2 -p1 +%patch5 -p1 # Safety check for ABI version change. vabi=`printf "%d" $(sed -n '/#define GIMP_MODULE_ABI_VERSION/{s/.* //;p}' libgimpmodule/gimpmodule.h)` if test "x${vabi}" != "x%{abiver}"; then ++++++ gimp-CVE-2011-2896.patch ++++++ >From 0eae221c7c6eb84591d718587a17ea90c8852d5b Mon Sep 17 00:00:00 2001 From: Nils Philippsen <n...@redhat.com> Date: Thu, 04 Aug 2011 10:47:44 +0000 Subject: file-gif-load: ensure return value of LZWReadByte() is <= 255 (cherry picked from commit b1a3de761362db982c0ddfaff60ab4a3c4267f32) --- diff --git a/plug-ins/common/file-gif-load.c b/plug-ins/common/file-gif-load.c index 9a0720b..a4d98fc 100644 --- a/plug-ins/common/file-gif-load.c +++ b/plug-ins/common/file-gif-load.c @@ -743,11 +743,11 @@ LZWReadByte (FILE *fd, } while (firstcode == clear_code); - return firstcode; + return firstcode & 255; } if (sp > stack) - return *--sp; + return (*--sp) & 255; while ((code = GetCode (fd, code_size, FALSE)) >= 0) { @@ -770,7 +770,7 @@ LZWReadByte (FILE *fd, sp = stack; firstcode = oldcode = GetCode (fd, code_size, FALSE); - return firstcode; + return firstcode & 255; } else if (code == end_code) { @@ -826,10 +826,10 @@ LZWReadByte (FILE *fd, oldcode = incode; if (sp > stack) - return *--sp; + return (*--sp) & 255; } - return code; + return code & 255; } static gint32 -- cgit v0.9.0.2 >From 62718f821b7c79a6860b8b25f0a21a91daa6e22d Mon Sep 17 00:00:00 2001 From: Nils Philippsen <n...@redhat.com> Date: Thu, 04 Aug 2011 10:51:42 +0000 Subject: file-gif-load: fix heap corruption and buffer overflow (CVE-2011-2896) (cherry picked from commit 376ad788c1a1c31d40f18494889c383f6909ebfc) --- diff --git a/plug-ins/common/file-gif-load.c b/plug-ins/common/file-gif-load.c index a4d98fc..8460ec0 100644 --- a/plug-ins/common/file-gif-load.c +++ b/plug-ins/common/file-gif-load.c @@ -697,7 +697,8 @@ LZWReadByte (FILE *fd, static gint firstcode, oldcode; static gint clear_code, end_code; static gint table[2][(1 << MAX_LZW_BITS)]; - static gint stack[(1 << (MAX_LZW_BITS)) * 2], *sp; +#define STACK_SIZE ((1 << (MAX_LZW_BITS)) * 2) + static gint stack[STACK_SIZE], *sp; gint i; if (just_reset_LZW) @@ -772,7 +773,7 @@ LZWReadByte (FILE *fd, return firstcode & 255; } - else if (code == end_code) + else if (code == end_code || code > max_code) { gint count; guchar buf[260]; @@ -791,13 +792,14 @@ LZWReadByte (FILE *fd, incode = code; - if (code >= max_code) + if (code == max_code) { - *sp++ = firstcode; + if (sp < &(stack[STACK_SIZE])) + *sp++ = firstcode; code = oldcode; } - while (code >= clear_code) + while (code >= clear_code && sp < &(stack[STACK_SIZE])) { *sp++ = table[1][code]; if (code == table[0][code]) @@ -808,7 +810,8 @@ LZWReadByte (FILE *fd, code = table[0][code]; } - *sp++ = firstcode = table[1][code]; + if (sp < &(stack[STACK_SIZE])) + *sp++ = firstcode = table[1][code]; if ((code = max_code) < (1 << MAX_LZW_BITS)) { -- cgit v0.9.0.2 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Remember to have fun... -- To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org For additional commands, e-mail: opensuse-commit+h...@opensuse.org