[gtkwave] Add upstream patch for #690920

Paul Howarth pghmcfc at fedoraproject.org
Tue Mar 29 09:43:42 UTC 2011


commit 2e8f1fe025f706d90c3628c7e3f081987a629ac0
Author: Paul Howarth <paul at city-fan.org>
Date:   Tue Mar 29 10:42:21 2011 +0100

    Add upstream patch for #690920
    
    - Tentative upstream fix for crash when reading malformed LXT file (#690920)
    - Nobody else likes macros for commands

 gtkwave-3.3.20-bz690920.patch |   35 +++++++++++++++++++++++++++++++++++
 gtkwave.spec                  |   34 +++++++++++++++++++++-------------
 2 files changed, 56 insertions(+), 13 deletions(-)
---
diff --git a/gtkwave-3.3.20-bz690920.patch b/gtkwave-3.3.20-bz690920.patch
new file mode 100644
index 0000000..42c3d76
--- /dev/null
+++ b/gtkwave-3.3.20-bz690920.patch
@@ -0,0 +1,35 @@
+Index: gtkwave3/src/helpers/lxt2_read.c
+===================================================================
+--- gtkwave3/src/helpers/lxt2_read.c	(revision 1)
++++ gtkwave3/src/helpers/lxt2_read.c	(revision 27)
+@@ -1507,8 +1507,8 @@
+ 				off_t fspos = b->filepos;
+ 				int rc;
+ 
+-				char *zbuff=NULL;
+-				int zlen = 0;
++				int zlen = 16;
++				char *zbuff=malloc(zlen);
+ 				struct z_stream_s strm;
+ 
+ 				real_uncompressed_siz = b->uncompressed_siz;
+@@ -1544,11 +1544,15 @@
+ 						strm.next_in = (unsigned char *)(zbuff+10);
+ 						strm.next_out = (unsigned char *)(pnt);
+ 
+-						rc = inflateInit2(&strm, -MAX_WBITS);
+-						while (Z_OK == (rc = inflate(&strm, Z_NO_FLUSH)));
+-						rc = inflateEnd(&strm);
+-						if(strm.total_out!=unclen)
++						if((clen != 0)&&(unclen != 0))
+ 							{
++							rc = inflateInit2(&strm, -MAX_WBITS);
++							while (Z_OK == (rc = inflate(&strm, Z_NO_FLUSH)));
++							rc = inflateEnd(&strm);
++							}
++
++						if((strm.total_out!=unclen)||(clen == 0)||(unclen == 0))
++							{
+ 							fprintf(stderr, LXT2_RDLOAD"short read on subblock %ld vs "LXT2_RD_LD" (exp), ignoring\n", strm.total_out, unclen);
+ 							free(b->mem); b->mem=NULL;
+ 							b->short_read_ignore = 1;
diff --git a/gtkwave.spec b/gtkwave.spec
index 1bf8003..fadcf8f 100644
--- a/gtkwave.spec
+++ b/gtkwave.spec
@@ -6,16 +6,17 @@
 Summary:	Waveform Viewer
 Name:		gtkwave
 Version:	3.3.20
-Release:	%{?prerel:0.}1%{?prerel:.%{prerel}}%{?dist}
+Release:	%{?prerel:0.}2%{?prerel:.%{prerel}}%{?dist}
 License:	GPLv2+
 Group:		Applications/Engineering
 URL:		http://gtkwave.sourceforge.net/
 Source0:	http://gtkwave.sourceforge.net/gtkwave-%{version}%{?prerel}.tar.gz
+Patch0:		gtkwave-3.3.20-bz690920.patch
 Source1:	gtkwave.desktop
 Source2:	gtkwave-16.png
 Source3:	gtkwave-32.png
 Source4:	gtkwave-48.png
-BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
+BuildRoot:	%{_tmppath}/%{name}-%{version}-%{release}-root-%(id -nu)
 BuildRequires:	gtk2-devel, bzip2-devel, Judy-devel, xz-devel, zlib-devel
 BuildRequires:	gperf, flex, desktop-file-utils
 %if 0%{?fedora} > 1 || 0%{?rhel} > 3
@@ -33,7 +34,10 @@ tools.
 
 %prep
 %setup -q -n gtkwave-%{version}%{?prerel}
-%{__cp} -p .gtkwaverc gtkwaverc.sample
+cp -p .gtkwaverc gtkwaverc.sample
+
+# Tentative upstream fix for crash when reading malformed LXT file (#690920)
+%patch0 -p1
 
 %build
 %{configure} --disable-dependency-tracking \
@@ -41,20 +45,20 @@ tools.
 	--disable-tcl \
 %endif
 	--enable-judy
-%{__make} %{?_smp_mflags}
+make %{?_smp_mflags}
 
 %install
-%{__rm} -rf %{buildroot}
-%{__make} install \
+rm -rf %{buildroot}
+make install \
 	DESTDIR=%{buildroot} \
 	pkgdatadir=%{_docdir}/gtkwave-%{version} \
-	INSTALL="%{__install} -p"
+	INSTALL="install -p"
 
 # Icons and desktop entry
-/usr/bin/desktop-file-install --vendor "" --dir %{buildroot}%{_datadir}/applications %{SOURCE1}
-%{__install} -D -m 644 -p %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gtkwave.png
-%{__install} -D -m 644 -p %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gtkwave.png
-%{__install} -D -m 644 -p %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/gtkwave.png
+desktop-file-install --vendor "" --dir %{buildroot}%{_datadir}/applications %{SOURCE1}
+install -D -m 644 -p %{SOURCE2} %{buildroot}%{_datadir}/icons/hicolor/16x16/apps/gtkwave.png
+install -D -m 644 -p %{SOURCE3} %{buildroot}%{_datadir}/icons/hicolor/32x32/apps/gtkwave.png
+install -D -m 644 -p %{SOURCE4} %{buildroot}%{_datadir}/icons/hicolor/48x48/apps/gtkwave.png
 
 # Include extra docs
 for extradoc in \
@@ -66,11 +70,11 @@ for extradoc in \
 	MIT.TXT \
 	SYSTEMVERILOG_README.TXT
 do
-	%{__install} -p -m 644 ${extradoc} %{buildroot}%{_docdir}/gtkwave-%{version}/
+	install -p -m 644 ${extradoc} %{buildroot}%{_docdir}/gtkwave-%{version}/
 done
 
 %clean
-%{__rm} -rf %{buildroot}
+rm -rf %{buildroot}
 
 %post
 touch --no-create %{_datadir}/icons/hicolor &>/dev/null || :
@@ -130,6 +134,10 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
 %{_mandir}/man5/gtkwaverc.5*
 
 %changelog
+* Tue Mar 29 2011 Paul Howarth <paul at city-fan.org> 3.3.20-2
+- tentative upstream fix for crash when reading malformed LXT file (#690920)
+- nobody else likes macros for commands
+
 * Fri Feb 25 2011 Paul Howarth <paul at city-fan.org> 3.3.20-1
 - update to 3.3.20
   - fixed uninitialized mat variable in compress_facility()


More information about the scm-commits mailing list