Bug#696514: freebsd-net-tools: /sbin/ifconfig: segfaults getting bridge status
Package: freebsd-net-tools
Version: 9.0+ds1-8
Severity: important
File: /sbin/ifconfig
Control: block -1 by 685625
User: debian-bsd@lists.debian.org
Usertags: kfreebsd
X-Debbugs-Cc: debian-bsd@lists.debian.org
Hi,
After an `ifconfig bridge0 create`, attempts to query the bridge status
from ifconfig will trigger a segfault related to printf(), as shown here
running under gdb:
> Starting program: /sbin/ifconfig bridge0
> bridge0: flags=8802<BROADCAST,SIMPLEX,MULTICAST> metric 0 mtu 1500
> ether f6:10:b5:1:8e:16
>
> Program received signal SIGSEGV, Segmentation fault.
> 0x00000008010bf21a in vfprintf () from /lib/x86_64-kfreebsd-gnu/libc.so.0.1
This was expected. I noticed this issue thanks to the buildd log
scanner[1] :
> cc -Wall -g -pipe -fPIC -I. -D_GNU_SOURCE -D__va_list=__builtin_va_list -isystem /usr/include/tirpc -D__FreeBSD_version=__FreeBSD_kernel_version -O2 -isystem /usr/include/freebsd -I/build/buildd-freebsd-utils_9.0+ds1-8-kfreebsd-i386-vUpCIn/freebsd-utils-9.0+ds1/debian/local/include -I/build/buildd-freebsd-utils_9.0+ds1-8-kfreebsd-i386-vUpCIn/freebsd-utils-9.0+ds1/include -lbsd -DINET6 -DINET -Wall -Wmissing-prototypes -Wcast-qual -Wwrite-strings -Wnested-externs -Wall -g -pipe -fPIC -I. -D_GNU_SOURCE -D__va_list=__builtin_va_list -isystem /usr/include/tirpc -D__FreeBSD_version=__FreeBSD_kernel_version -O2 -std=gnu99 -fstack-protector -Wall -Wno-format-y2k -Wno-uninitialized -Wno-pointer-sign -c ifbridge.c
> ifbridge.c: In function 'bridge_addresses':
> ifbridge.c:241:3: warning: implicit declaration of function 'ether_ntoa' [-Wimplicit-function-declaration]
> ifbridge.c:241:3: warning: nested extern declaration of 'ether_ntoa' [-Wnested-externs]
> ifbridge.c:242:7: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'int' [-Wformat]
> ifbridge.c: In function 'bridge_status':
> ifbridge.c:278:25: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'int' [-Wformat]
> ifbridge.c:285:6: warning: format '%s' expects argument of type 'char *', but argument 2 has type 'int' [-Wformat]
> ifbridge.c: In function 'setbridge_static':
> ifbridge.c:473:2: warning: implicit declaration of function 'ether_aton' [-Wimplicit-function-declaration]
> ifbridge.c:473:2: warning: nested extern declaration of 'ether_aton' [-Wnested-externs]
> ifbridge.c:473:5: warning: assignment makes pointer from integer without a cast [enabled by default]
> ifbridge.c: In function 'setbridge_deladdr':
> ifbridge.c:493:5: warning: assignment makes pointer from integer without a cast [enabled by default]
The missing prototypes issue is being discussed already in #685625. In
this case it results in a truncated pointer being passed to printf.
This probably doesn't affect kfreebsd-i386 as the pointer would be only
32 bits anyway.
[1] https://buildd.debian.org/~brlink/packages/f/freebsd-utils.html
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: kfreebsd-amd64 (x86_64)
Kernel: kFreeBSD 9.0-2-amd64
Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages freebsd-net-tools depends on:
ii libbsd0 0.4.2-1
ii libc0.1 2.13-35
ii libexpat1 2.1.0-1
ii libipx2 9.0+ds1-3
ii libkvm0 9.0+ds1-3
ii libmemstat3 9.0+ds1-3
ii libnetgraph4 9.0+ds1-3
ii libsbuf6 9.0+ds1-3
ii pf 9.0+ds1-8
freebsd-net-tools recommends no packages.
freebsd-net-tools suggests no packages.
-- no debconf information
Reply to: