From 0ca990fc6b4343b7ff52a0efe1c1ab4381be65f6 Mon Sep 17 00:00:00 2001 From: "Vojtech Vitek (V-Teq)" Date: Tue, 2 Nov 2010 11:32:25 +0100 Subject: [PATCH] - fix #629196: Double free in free_wstr - fix license tag, add description - remove BuildRoot tag --- gawk-3.1.8-double-free-wstptr.patch | 23 +++++++++++++++++++++++ gawk.spec | 16 +++++++++++++--- 2 files changed, 36 insertions(+), 3 deletions(-) create mode 100644 gawk-3.1.8-double-free-wstptr.patch diff --git a/gawk-3.1.8-double-free-wstptr.patch b/gawk-3.1.8-double-free-wstptr.patch new file mode 100644 index 0000000..21fd118 --- /dev/null +++ b/gawk-3.1.8-double-free-wstptr.patch @@ -0,0 +1,23 @@ +Index: node.c +=================================================================== +RCS file: /sources/gawk/gawk-devel/node.c,v +retrieving revision 1.3 +diff -u -r1.3 node.c +--- node.c 6 May 2010 19:00:58 -0000 1.3 ++++ node.c 27 Oct 2010 17:56:49 -0000 +@@ -758,6 +758,15 @@ + + assert((n->flags & (STRING|STRCUR)) != 0); + ++ /* ++ * Don't convert global null string or global null field ++ * variables to a wide string. They are both zero-length anyway. ++ * This also avoids future double-free errors while releasing ++ * shallow copies, eg. *tmp = *Null_field; free_wstr(tmp); ++ */ ++ if (n == Nnull_string || n == Null_field) ++ return n; ++ + if ((n->flags & WSTRCUR) != 0) { + if (ptr == NULL) + return n; diff --git a/gawk.spec b/gawk.spec index ef363bb..714c822 100644 --- a/gawk.spec +++ b/gawk.spec @@ -1,12 +1,16 @@ Summary: The GNU version of the awk text processing utility Name: gawk Version: 3.1.8 -Release: 1%{?dist} -License: GPLv3+ +Release: 2%{?dist} +# Most of source files are licensed under GPLv3+, +# several files are GPL or LGPLv2.1+ licensed, +# gettext.h is LGPL and random.c is BSD licensed +License: GPLv3+ and GPL and LGPLv3+ and LGPL and BSD Group: Applications/Text URL: http://www.gnu.org/software/gawk/gawk.html Source0: http://ftp.gnu.org/gnu/gawk/gawk-%{version}.tar.bz2 -BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX) +# http://lists.gnu.org/archive/html/bug-gnu-utils/2010-11/msg00005.html +Patch: gawk-3.1.8-double-free-wstptr.patch Requires(post): /sbin/install-info Requires(preun): /sbin/install-info @@ -21,6 +25,7 @@ considered to be a standard Linux tool for processing text. %prep %setup -q +%patch -p0 -b .double-free-wstptr %build %configure --bindir=/bin --disable-libsigsegv @@ -69,6 +74,11 @@ fi %{_datadir}/awk %changelog +* Tue Nov 02 2010 Vojtech Vitek (V-Teq) - 3.1.8-2 +- fix #629196: Double free in free_wstr +- fix license tag, add description +- remove BuildRoot tag + * Fri May 7 2010 Stepan Kasal - 3.1.8-1 - new upstream version - drop upstreamed patches