From 38727d50efb6a4a96d0f460b994a65e88ef3a506 Mon Sep 17 00:00:00 2001 From: archie Date: Sat, 1 Oct 2005 20:07:56 +0000 Subject: Fix segfault on AMD64. PR: ports/83602 --- net/mpd/files/patch-src::custom.c | 31 +++++++++++++++++ net/mpd/files/patch-src::log.c | 73 +++++++++++++++++++++++++++++++++++++++ net/mpd/files/patch-src::modem.c | 21 +++++++++++ 3 files changed, 125 insertions(+) create mode 100644 net/mpd/files/patch-src::custom.c create mode 100644 net/mpd/files/patch-src::log.c create mode 100644 net/mpd/files/patch-src::modem.c (limited to 'net/mpd') diff --git a/net/mpd/files/patch-src::custom.c b/net/mpd/files/patch-src::custom.c new file mode 100644 index 000000000000..0bec6ce12bd8 --- /dev/null +++ b/net/mpd/files/patch-src::custom.c @@ -0,0 +1,31 @@ +Index: src/custom.c +=================================================================== +RCS file: /cvsroot/mpd/mpd/src/custom.c,v +retrieving revision 1.1.2.1 +retrieving revision 1.1.2.2 +diff -u -r1.1.2.1 -r1.1.2.2 +--- src/custom.c 26 Apr 2004 13:17:17 -0000 1.1.2.1 ++++ src/custom.c 10 Jan 2005 23:14:03 -0000 1.1.2.2 +@@ -141,16 +141,19 @@ + if (!bund) + return; + +- va_start(args, fmt); + if (l == NULL) { + for (k = 0; k < bund->n_links; k++) { +- if (bund && bund->links[k]) ++ if (bund && bund->links[k]) { ++ va_start(args, fmt); + RecordLinkUpDownReason2(bund->links[k], up, key, fmt, args); ++ va_end(args); ++ } + } + } else { ++ va_start(args, fmt); + RecordLinkUpDownReason2(l, up, key, fmt, args); ++ va_end(args); + } +- va_end(args); + } + + static void diff --git a/net/mpd/files/patch-src::log.c b/net/mpd/files/patch-src::log.c new file mode 100644 index 000000000000..83d46e5b01b5 --- /dev/null +++ b/net/mpd/files/patch-src::log.c @@ -0,0 +1,73 @@ +Index: src/log.c +=================================================================== +RCS file: /cvsroot/mpd/mpd/src/log.c,v +retrieving revision 1.4 +retrieving revision 1.4.2.1 +diff -u -r1.4 -r1.4.2.1 +--- src/log.c 25 Nov 2002 23:51:41 -0000 1.4 ++++ src/log.c 7 Oct 2004 22:43:31 -0000 1.4.2.1 +@@ -265,17 +265,21 @@ + { + va_list args; + +- va_start(args, fmt); + LogTimeStamp(logprintf); ++ va_start(args, fmt); + vlogprintf(fmt, args); ++ va_end(args); ++ va_start(args, fmt); + vlogprintf("\n", args); /* XXX args will be ignored */ ++ va_end(args); + if (gLogOptions & LG_CONSOLE) + { ++ va_start(args, fmt); + vfprintf(stdout, fmt, args); ++ va_end(args); + putc('\n', stdout); + fflush(stdout); + } +- va_end(args); + } + + /* +@@ -315,12 +319,16 @@ + + /* Dump it */ + +- va_start(ap, fmt); +- if (console) ++ if (console) { ++ va_start(ap, fmt); + LogDoDumpBp(printf, vprintf, FALSE, bp, fmt, ap); +- if (log) ++ va_end(ap); ++ } ++ if (log) { ++ va_start(ap, fmt); + LogDoDumpBp(logprintf, vlogprintf, TRUE, bp, fmt, ap); +- va_end(ap); ++ va_end(ap); ++ } + } + + /* +@@ -342,11 +350,16 @@ + + /* Dump it */ + +- va_start(ap, fmt); +- if (console) ++ if (console) { ++ va_start(ap, fmt); + LogDoDumpBuf(printf, vprintf, FALSE, buf, count, fmt, ap); +- if (log) ++ va_end(ap); ++ } ++ if (log) { ++ va_start(ap, fmt); + LogDoDumpBuf(logprintf, vlogprintf, TRUE, buf, count, fmt, ap); ++ va_end(ap); ++ } + } + + /* diff --git a/net/mpd/files/patch-src::modem.c b/net/mpd/files/patch-src::modem.c new file mode 100644 index 000000000000..adf7cea289b4 --- /dev/null +++ b/net/mpd/files/patch-src::modem.c @@ -0,0 +1,21 @@ +Index: src/modem.c +=================================================================== +RCS file: /cvsroot/mpd/mpd/src/modem.c,v +retrieving revision 1.4 +retrieving revision 1.4.2.2 +diff -u -r1.4 -r1.4.2.2 +--- src/modem.c 5 Dec 2002 22:01:40 -0000 1.4 ++++ src/modem.c 10 Jan 2005 23:14:03 -0000 1.4.2.2 +@@ -610,10 +617,12 @@ + /* Concat prefix and message */ + va_start(args, fmt); + vsnprintf(buf, sizeof(buf), fmt, args); ++ va_end(args); + if (*buf != ' ') + snprintf(buf, sizeof(buf), "[%s] chat: ", lnk->name); + else + *buf = '\0'; ++ va_start(args, fmt); + vsnprintf(buf + strlen(buf), sizeof(buf) - strlen(buf), fmt, args); + va_end(args); + -- cgit