walters / rpms / nfs-utils

Forked from rpms/nfs-utils 6 years ago
Clone
51df58e
commit 399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2
51df58e
Author: Steve Dickson <steved@dickson.boston.devel.redhat.com>
51df58e
Date:   Thu Jan 17 11:25:37 2008 -0500
51df58e
51df58e
    Stop segfaults on amd64 during warnings messages by creating
51df58e
    a second va_list in xlog_backend() and then use that va_list
51df58e
    to print messages on stderr.
51df58e
    
51df58e
    Signed-off-by: Steinar H. Gunderson <sesse@debian.org>
51df58e
    Signed-off-by: Steve Langasek <vorlon@debian.org>
51df58e
    Signed-off-by: Steve Dickson <steved@dickson.boston.devel.redhat.com>
51df58e
51df58e
diff -up nfs-utils-1.1.1/support/nfs/xlog.c.orig nfs-utils-1.1.1/support/nfs/xlog.c
51df58e
--- nfs-utils-1.1.1/support/nfs/xlog.c.orig	2007-10-18 23:07:28.000000000 -0400
51df58e
+++ nfs-utils-1.1.1/support/nfs/xlog.c	2008-01-22 14:13:36.000000000 -0500
51df58e
@@ -133,9 +133,14 @@ xlog_enabled(int fac)
51df58e
 void
51df58e
 xlog_backend(int kind, const char *fmt, va_list args)
51df58e
 {
51df58e
+	va_list args2;
51df58e
+
51df58e
 	if (!(kind & (L_ALL)) && !(logging && (kind & logmask)))
51df58e
 		return;
51df58e
 
51df58e
+	if (log_stderr)
51df58e
+		va_copy(args2, args);
51df58e
+
51df58e
 	if (log_syslog) {
51df58e
 		switch (kind) {
51df58e
 		case L_FATAL:
51df58e
@@ -171,9 +176,9 @@ xlog_backend(int kind, const char *fmt, 
51df58e
 #else
51df58e
 		fprintf(stderr, "%s: ", log_name);
51df58e
 #endif
51df58e
-
51df58e
-		vfprintf(stderr, fmt, args);
51df58e
+		vfprintf(stderr, fmt, args2);
51df58e
 		fprintf(stderr, "\n");
51df58e
+		va_end(args2);
51df58e
 	}
51df58e
 
51df58e
 	if (kind == L_FATAL)