- fix #629196: Double free in free_wstr

- fix license tag, add description
- remove BuildRoot tag
This commit is contained in:
Vojtech Vitek (V-Teq) 2010-11-02 14:47:24 +01:00
parent d836540d22
commit 0a66089323
3 changed files with 37 additions and 4 deletions

View File

@ -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;

View File

@ -1,14 +1,18 @@
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
# Patch from Arnold, the upstream maintainer:
Patch0: gawk-3.1.7-syntax.patch
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
Patch0: gawk-3.1.8-syntax.patch
# http://lists.gnu.org/archive/html/bug-gnu-utils/2010-11/msg00005.html
Patch1: gawk-3.1.8-double-free-wstptr.patch
Requires(post): /sbin/install-info
Requires(preun): /sbin/install-info
@ -25,6 +29,7 @@ considered to be a standard Linux tool for processing text.
%prep
%setup -q
%patch0 -p1 -b .syntax
%patch1 -p0 -b .double-free-wstptr
%build
%configure --bindir=/bin --disable-libsigsegv
@ -73,6 +78,11 @@ fi
%{_datadir}/awk
%changelog
* Tue Nov 02 2010 Vojtech Vitek (V-Teq) <vvitek@redhat.com> - 3.1.8-2
- fix #629196: Double free in free_wstr
- fix license tag, add description
- remove BuildRoot tag
* Fri Jun 25 2010 Jan Zeleny <jzeleny@redhat.com> - 3.1.8-1
- rebased to 3.1.8
- fixed handling of extreme int values