[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: