summaryrefslogtreecommitdiffstats
path: root/support/nfs/xlog.c
diff options
context:
space:
mode:
authorSteve Dickson <steved@dickson.boston.devel.redhat.com>2008-01-17 11:25:37 -0500
committerSteve Dickson <steved@dickson.boston.devel.redhat.com>2008-01-17 11:25:37 -0500
commit399cc3dad0cdfe8dca4a0ae9035a0554d7223eb2 (patch)
tree817c7b8e4c980f0f5b7d21ffb9387548417c2e65 /support/nfs/xlog.c
parent72ada109b86622db8009e774ebc96a7a92094e8a (diff)
downloadnfs-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.c9
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)