From f5b4f309f3f7138ca18602bdce7fed217712fe54 Mon Sep 17 00:00:00 2001 From: CyberLeo Date: Sun, 19 Feb 2017 00:29:36 -0600 Subject: [PATCH] net/tinyfugue: add patch to fix vsprintf crash in /ps --- cdn/patch/net_tinyfugue_revbump.patch | 11 +++++++ .../tinyfugue/files/patch-fix-vsprintf-amd64 | 30 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 cdn/patch/net_tinyfugue_revbump.patch create mode 100644 cdn/ports/net/tinyfugue/files/patch-fix-vsprintf-amd64 diff --git a/cdn/patch/net_tinyfugue_revbump.patch b/cdn/patch/net_tinyfugue_revbump.patch new file mode 100644 index 0000000..52840a3 --- /dev/null +++ b/cdn/patch/net_tinyfugue_revbump.patch @@ -0,0 +1,11 @@ +--- net/tinyfugue/Makefile 2017-02-19 00:25:19.519297000 -0600 ++++ net/tinyfugue/Makefile 2017-02-19 00:25:24.294541000 -0600 +@@ -3,7 +3,7 @@ + + PORTNAME= tf + PORTVERSION= 5.0b8 +-PORTREVISION= 3 ++PORTREVISION= 4 + CATEGORIES= net games + MASTER_SITES= SF/tinyfugue/tinyfugue/5.0%20beta%208 + DISTNAME= ${PORTNAME}-${PORTVERSION:S/.//} diff --git a/cdn/ports/net/tinyfugue/files/patch-fix-vsprintf-amd64 b/cdn/ports/net/tinyfugue/files/patch-fix-vsprintf-amd64 new file mode 100644 index 0000000..198a2b9 --- /dev/null +++ b/cdn/ports/net/tinyfugue/files/patch-fix-vsprintf-amd64 @@ -0,0 +1,30 @@ +diff -U5 -r src/tfio.c src/tfio.c +--- src/tfio.c 2007-01-13 18:12:39.000000000 -0500 ++++ 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': -- 2.45.0