diff options
author | Steve Dickson <steved@dickson.boston.devel.redhat.com> | 2008-01-17 11:25:37 -0500 |
---|---|---|
committer | Steve Dickson <steved@dickson.boston.devel.redhat.com> | 2008-01-17 11:25:37 -0500 |
commit | 399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2 (patch) | |
tree | 817c7b8e4c980f0f5b7d21ffb9387548417c2e65 /support/nfs/xlog.c | |
parent | 72ada109b86622db8009e774ebc96a7a92094e8a (diff) | |
download | nfs-utils-399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2.tar.gz nfs-utils-399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2.tar.xz nfs-utils-399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2.zip |
Stop segfaults on amd64 during warnings messages by creating
a second va_list in xlog_backend() and then use that va_list
to print messages on stderr.
Signed-off-by: Steinar H. Gunderson <sesse@debian.org>
Signed-off-by: Steve Langasek <vorlon@debian.org>
Signed-off-by: Steve Dickson <steved@dickson.boston.devel.redhat.com>
Diffstat (limited to 'support/nfs/xlog.c')
-rw-r--r-- | support/nfs/xlog.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/support/nfs/xlog.c b/support/nfs/xlog.c index 26123c5..6820346 100644 --- a/support/nfs/xlog.c +++ b/support/nfs/xlog.c @@ -133,9 +133,14 @@ xlog_enabled(int fac) void xlog_backend(int kind, const char *fmt, va_list args) { + va_list args2; + if (!(kind & (L_ALL)) && !(logging && (kind & logmask))) return; + if (log_stderr) + va_copy(args2, args); + if (log_syslog) { switch (kind) { case L_FATAL: @@ -171,9 +176,9 @@ xlog_backend(int kind, const char *fmt, va_list args) #else fprintf(stderr, "%s: ", log_name); #endif - - vfprintf(stderr, fmt, args); + vfprintf(stderr, fmt, args2); fprintf(stderr, "\n"); + va_end(args2); } if (kind == L_FATAL) |