[tinyfugue] Don't crash on /ps @ x86_64 (#743468)

Petr Sabata psabata at fedoraproject.org
Wed Oct 12 14:19:44 UTC 2011


commit 95dc212e0a84b415e790da550f463c344e88e98b
Author: Petr Sabata <contyk at redhat.com>
Date:   Wed Oct 12 16:17:34 2011 +0200

    Don't crash on /ps @ x86_64 (#743468)

 tf-50b8.x86_64.patch |   30 ++++++++++++++++++++++++++++++
 tinyfugue.spec       |    8 +++++++-
 2 files changed, 37 insertions(+), 1 deletions(-)
---
diff --git a/tf-50b8.x86_64.patch b/tf-50b8.x86_64.patch
new file mode 100644
index 0000000..ae53b6f
--- /dev/null
+++ b/tf-50b8.x86_64.patch
@@ -0,0 +1,30 @@
+diff -U5 -r tf-50b8.orig/src/tfio.c tf-50b8/src/tfio.c
+--- tf-50b8.orig/src/tfio.c	2007-01-13 18:12:39.000000000 -0500
++++ tf-50b8/src/tfio.c	2007-02-02 16:50:12.000000000 -0500
+@@ -495,10 +495,11 @@
+     const char *q, *sval;
+     char *specptr, quote;
+     const conString *Sval;
+     int len, min, max, leftjust, stars;
+     attr_t attrs = buf->attrs;
++    va_list aq;
+ 
+     if (!(flags & SP_APPEND) && buf->data) Stringtrunc(buf, 0);
+     while (*fmt) {
+         if (*fmt != '%' || *++fmt == '%') {
+             for (q = fmt + 1; *q && *q != '%'; q++);
+@@ -520,11 +521,13 @@
+         switch (*fmt) {
+         case 'd': case 'i':
+         case 'x': case 'X': case 'u': case 'o':
+         case 'f': case 'e': case 'E': case 'g': case 'G':
+         case 'p':
+-            vsprintf(tempbuf, spec, ap);
++            va_copy(aq, ap);
++            vsprintf(tempbuf, spec, aq);
++            va_end(aq);
+             Stringcat(buf, tempbuf);
+             /* eat the arguments used by vsprintf() */
+             while (stars--) (void)va_arg(ap, int);
+             switch (*fmt) {
+             case 'd': case 'i':
diff --git a/tinyfugue.spec b/tinyfugue.spec
index fdbb602..395df07 100644
--- a/tinyfugue.spec
+++ b/tinyfugue.spec
@@ -2,7 +2,7 @@
 
 Name:    tinyfugue
 Version: 5.0
-Release: 0.14.b8%{?dist}
+Release: 0.15.b8%{?dist}
 Summary: A MU* client
 
 Group:   Applications/Internet
@@ -10,6 +10,7 @@ License: GPLv2+
 URL:     http://tinyfugue.sourceforge.net/
 Source:  http://downloads.sourceforge.net/tinyfugue/tf-%{packageversion}.tar.gz
 Patch0:  tf-50b7.build.patch
+Patch1:  tf-50b8.x86_64.patch
 BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
 
 BuildRequires: ncurses-devel
@@ -25,6 +26,8 @@ macros, and create hooks and triggers for automated responses to game messages.
 %setup -q -n tf-%{packageversion}
 # TinyFugue's build system is abysmal. Kluge it to honor $DESTDIR
 %patch0 -p1
+# x86_64 fix (#743468)
+%patch1 -p1
 
 %build
 %configure --enable-core
@@ -47,6 +50,9 @@ rm -rf %{buildroot}
 %{_mandir}/man1/tf.1*
 
 %changelog
+* Wed Oct 12 2011 Petr Sabata <contyk at redhat.com> - 5.0-0.15.b8
+- Don't crash on /ps @ x86_64 (#743468)
+
 * Wed Feb 09 2011 Fedora Release Engineering <rel-eng at lists.fedoraproject.org> - 5.0-0.14.b8
 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild
 


More information about the scm-commits mailing list