From a0ad7f50ff03c9d75c2d9bf24fba5be4861a3d31 Mon Sep 17 00:00:00 2001 From: Till Maas Date: Wed, 25 Feb 2009 17:19:23 +0000 Subject: [PATCH] - Update to new release to fix array overflow - Red Hat Bugzilla #487364 --- optipng-0.6.2.1.diff | 57 ++++++++++++++++++++++++++++++++++++++++++++ optipng.spec | 5 ++-- 2 files changed, 60 insertions(+), 2 deletions(-) create mode 100644 optipng-0.6.2.1.diff diff --git a/optipng-0.6.2.1.diff b/optipng-0.6.2.1.diff new file mode 100644 index 0000000..cba250e --- /dev/null +++ b/optipng-0.6.2.1.diff @@ -0,0 +1,57 @@ +diff -ru optipng-0.6.2/lib/pngxtern/gif/gifread.c optipng-0.6.2.1/lib/pngxtern/gif/gifread.c +--- optipng-0.6.2/lib/pngxtern/gif/gifread.c 2006-08-10 20:17:00.000000000 -0400 ++++ optipng-0.6.2.1/lib/pngxtern/gif/gifread.c 2009-02-20 03:11:00.000000000 -0500 +@@ -219,8 +219,7 @@ + **/ + static void GIFReadNextExtension(struct GIFExtension *ext, FILE *stream) + { +- unsigned char *ptr; +- unsigned int len; ++ unsigned int offset, len; + int count, label; + + GIF_FGETC(label, stream); +@@ -233,7 +232,7 @@ + return; + } + +- ptr = ext->Buffer; ++ offset = 0; + len = ext->BufferSize; + for ( ;; ) + { +@@ -243,10 +242,10 @@ + ext->BufferSize += 1024; + ext->Buffer = realloc(ext->Buffer, ext->BufferSize); + } +- count = ReadDataBlock(ptr, stream); ++ count = ReadDataBlock(ext->Buffer + offset, stream); + if (count == 0) + break; +- ptr += count; ++ offset += count; + len -= count; + } + } +diff -ru optipng-0.6.2/src/optipng.c optipng-0.6.2.1/src/optipng.c +--- optipng-0.6.2/src/optipng.c 2008-11-09 23:56:00.000000000 -0500 ++++ optipng-0.6.2.1/src/optipng.c 2008-11-11 13:57:00.000000000 -0500 +@@ -542,6 +542,7 @@ + static void + app_init(void) + { ++ setvbuf(stdout, NULL, _IONBF, 0); + if (options.log_name != NULL) + { + /* Open the log file, line-buffered. */ +diff -ru optipng-0.6.2/src/proginfo.h optipng-0.6.2.1/src/proginfo.h +--- optipng-0.6.2/src/proginfo.h 2008-11-09 23:56:00.000000000 -0500 ++++ optipng-0.6.2.1/src/proginfo.h 2009-02-22 23:38:00.000000000 -0500 +@@ -1,5 +1,5 @@ + #define PROGRAM_NAME "OptiPNG" + #define PROGRAM_DESCRIPTION "Advanced PNG optimizer" +-#define PROGRAM_VERSION "0.6.2" +-#define PROGRAM_COPYRIGHT "Copyright (C) 2001-2008 Cosmin Truta" ++#define PROGRAM_VERSION "0.6.2.1" ++#define PROGRAM_COPYRIGHT "Copyright (C) 2001-2009 Cosmin Truta" + #define PROGRAM_URI "http://optipng.sourceforge.net/" diff --git a/optipng.spec b/optipng.spec index a9c6471..8f3bfc3 100644 --- a/optipng.spec +++ b/optipng.spec @@ -6,7 +6,8 @@ Summary: PNG optimizer and converter Group: Applications/Multimedia License: zlib URL: http://optipng.sourceforge.net/ -Source0: http://downloads.sourceforge.net/optipng/%{name}-%{version}.tar.gz +#Source0: http://downloads.sourceforge.net/optipng/%{name}-%{version}.tar.gz +Source0: http://downloads.sourceforge.net/optipng/%{name}-0.6.2.tar.gz Patch0: http://downloads.sourceforge.net/optipng/optipng-0.6.2.1.diff BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -20,7 +21,7 @@ and corrections. %prep -%setup -q +%setup -q -n %{name}-0.6.2 # Ensure system libs and headers are used; as of 0.6.1 pngxtern will use # the bundled headers if present even with -with-system-*, causing failures.