Package: nfs-kernel-server Version: 1:1.1.1-1 Severity: grave Tags: patch After upgrade, exportfs consistently segfaults on amd64, making the package unusable:
Exporting directories for NFS kernel daemon...exportfs: /etc/init.d/nfs-kernel-s erver: line 60: 20695 Segmentation fault $PREFIX/sbin/exportfs -r Backtrace from a rebuild with debugging symbols: (gdb) bt #0 0x00002aaf70189a90 in strlen () from /lib/libc.so.6 #1 0x00002aaf7015819a in vfprintf () from /lib/libc.so.6 #2 0x00002aaf70159083 in ?? () from /lib/libc.so.6 #3 0x00002aaf701549be in vfprintf () from /lib/libc.so.6 #4 0x0000000000406fb6 in xlog_backend (kind=1024, fmt=0x4094c0 "%s [%d]: Neither 'subtree_check' or 'no_subtree_check' specified for export \"%s:%s\".\n Assuming default behaviour ('no_subtree_check').\n NOTE: this default has changed since nfs-utils version 1.0.x\n", args=0x7fff3adbc560) at xlog.c:175 #5 0x0000000000407216 in xlog (kind=16, fmt=0x4094c0 "%s [%d]: Neither 'subtree_check' or 'no_subtree_check' specified for export \"%s:%s\".\n Assuming default behaviour ('no_subtree_check').\n NOTE: this default has changed since nfs-utils version 1.0.x\n") at xlog.c:189 #6 0x00000000004052b5 in parseopts (cp=0x7fff3adbd6e8 "", ep=0x60c8e0, warn=1, had_subtree_opt_ptr=0x0) at exports.c:654 #7 0x00000000004063b8 in getexportent (fromkernel=<value optimized out>, fromexports=1) at exports.c:182 #8 0x0000000000403cdc in export_read (fname=<value optimized out>) at export.c:37 #9 0x0000000000402471 in main (argc=2, argv=0x7fff3adbda88) at exportfs.c:115 (gdb) The code in xlog_backend() appears to use the same va_list multiple times, which is forbidden by the C standard and breaks on amd64. The attached patch appears to fix the error. -- Steve Langasek Give me a lever long enough and a Free OS Debian Developer to set it on, and I can move the world. [EMAIL PROTECTED] http://www.debian.org/
diff -u nfs-utils-1.1.1/debian/changelog nfs-utils-1.1.1/debian/changelog --- nfs-utils-1.1.1/debian/changelog +++ nfs-utils-1.1.1/debian/changelog @@ -1,3 +1,11 @@ +nfs-utils (1:1.1.1-1.1) unstable; urgency=low + + * Non-maintainer upload. + * Fix misuse of va_list in logging code, that causes consistent segfaults + on amd64. + + -- Steve Langasek <[EMAIL PROTECTED]> Sun, 21 Oct 2007 03:26:47 -0700 + nfs-utils (1:1.1.1-1) unstable; urgency=low * New upstream release. only in patch2: unchanged: --- nfs-utils-1.1.1.orig/support/nfs/xlog.c +++ nfs-utils-1.1.1/support/nfs/xlog.c @@ -133,9 +133,13 @@ void xlog_backend(int kind, const char *fmt, va_list args) { + va_list args2; + if (!(kind & (L_ALL)) && !(logging && (kind & logmask))) return; + va_copy(args2, args); + if (log_syslog) { switch (kind) { case L_FATAL: @@ -172,10 +176,12 @@ fprintf(stderr, "%s: ", log_name); #endif - vfprintf(stderr, fmt, args); + vfprintf(stderr, fmt, args2); fprintf(stderr, "\n"); } + va_end(args2); + if (kind == L_FATAL) exit(1); }