[pkg-wpa-devel] Bug#403313: segfault if the interface is not present

Eduard Bloch blade at debian.org
Sat Dec 16 09:37:01 CET 2006


Package: wpasupplicant
Version: 0.5.5-4
Severity: normal

Hello,

I just discovered that current wpa_supplicant just segfaults if the
specified interface is not available at all. Here the log and strace
log, as executed by ifup:

ifup eth1=kpax
ioctl[SIOCSIWPMKSA]: No such device
ioctl[SIOCSIWMODE]: No such device
Could not configure driver to use managed mode
ioctl[SIOCGIFFLAGS]: No such device
Could not set interface 'eth1' UP
ioctl[SIOCGIWRANGE]: No such device
ioctl[SIOCGIFINDEX]: No such device
/etc/wpa_supplicant/functions.sh: line 160: 27028 Segmentation fault
start-stop-daemon --start --oknodo $DAEMON_VERBOSITY --name
$WPA_SUP_PNAME --startas $WPA_SUP_BIN --pidfile $WPA_SUP_PIDFILE --
$WPA_SUP_OPTIONS -D $WPA_SUP_DRIVER $WPA_SUP_CONF
wpa_supplicant: /sbin/wpa_supplicant daemon failed to start
run-parts: /etc/network/if-pre-up.d/wpasupplicant exited with return
code 1
Internet Systems Consortium DHCP Client V3.0.4
Copyright 2004-2006 Internet Systems Consortium.
All rights reserved.
For info, please visit http://www.isc.org/sw/dhcp/

SIOCSIFADDR: No such device
eth1: ERROR while getting interface flags: No such device
eth1: ERROR while getting interface flags: No such device



26232 execve("/sbin/start-stop-daemon", ["start-stop-daemon", "--start", "--oknodo", "--quiet", "--name", "wpa_supplicant", "--startas", "/sbin/wpa_supplicant", "--pidfile", "/var/run/wpa_supplicant.eth1.pid"...,
 "--", "-B", "-P", "/var/run/wpa_supplicant.eth1.pid"..., "-i", "eth1", ...], [/* 17 vars */]) = 0
26232 uname({sys="Linux", node="debian", ...}) = 0
26232 brk(0)                            = 0x804e000
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f15000
26232 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
26232 open("/etc/ld.so.cache", O_RDONLY) = 3
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=100308, ...}) = 0
26232 mmap2(NULL, 100308, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7efc000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\177"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0755, st_size=1244372, ...}) = 0
26232 mmap2(0x48cc3000, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48cc3000
26232 mmap2(0x48dea000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0x48dea000
26232 mmap2(0x48df1000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x48df1000
26232 close(3)                          = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7efb000
26232 mprotect(0x48dea000, 20480, PROT_READ) = 0
26232 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7efb8e0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
26232 munmap(0xb7efc000, 100308)        = 0
26232 brk(0)                            = 0x804e000
26232 brk(0x806f000)                    = 0x806f000
26232 open("/var/run/wpa_supplicant.eth1.pid", O_RDONLY|O_LARGEFILE) = -1 ENOENT (No such file or directory)
26232 chdir("/")                        = 0
26232 execve("/sbin/wpa_supplicant", ["/sbin/wpa_supplicant", "-B", "-P", "/var/run/wpa_supplicant.eth1.pid"..., "-i", "eth1", "-D", "wext", "-C", "/var/run/wpa_supplicant"], [/* 17 vars */]) = 0
26232 uname({sys="Linux", node="debian", ...}) = 0
26232 brk(0)                            = 0x8095000
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 mmap2(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4e000
26232 access("/etc/ld.so.preload", R_OK) = -1 ENOENT (No such file or directory)
26232 open("/etc/ld.so.cache", O_RDONLY) = 3
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=100308, ...}) = 0
26232 mmap2(NULL, 100308, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7f35000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/usr/lib/i686/cmov/libssl.so.0.9.8", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0P\255\0"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=252640, ...}) = 0
26232 mmap2(NULL, 255604, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7ef6000
26232 mmap2(0xb7f31000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x3a) = 0xb7f31000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/usr/lib/i686/cmov/libcrypto.so.0.9.8", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\300Y\3"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=1270520, ...}) = 0
26232 mmap2(NULL, 1282904, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7dbc000
26232 mmap2(0xb7ede000, 81920, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x122) = 0xb7ede000
26232 mmap2(0xb7ef2000, 13144, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7ef2000
26232 close(3)                          = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7dbb000
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/lib/tls/i686/cmov/libdl.so.2", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20l\337"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=11176, ...}) = 0
26232 mmap2(0x48df6000, 12404, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48df6000
26232 mmap2(0x48df8000, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x1) = 0x48df8000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/usr/lib/libdbus-1.so.3", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\0K\0\000"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=203724, ...}) = 0
26232 mmap2(NULL, 203000, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7d89000
26232 mmap2(0xb7dba000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x31) = 0xb7dba000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/lib/tls/i686/cmov/libc.so.6", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240\177"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0755, st_size=1244372, ...}) = 0
26232 mmap2(0x48cc3000, 1247388, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48cc3000
26232 mmap2(0x48dea000, 28672, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x127) = 0x48dea000
26232 mmap2(0x48df1000, 10396, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x48df1000
26232 close(3)                          = 0
26232 access("/etc/ld.so.nohwcap", F_OK) = -1 ENOENT (No such file or directory)
26232 open("/usr/lib/libz.so.1", O_RDONLY) = 3
26232 read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\340\206"..., 512) = 512
26232 fstat64(3, {st_mode=S_IFREG|0644, st_size=79832, ...}) = 0
26232 mmap2(0x48e37000, 81456, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0x48e37000
26232 mmap2(0x48e4a000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x12) = 0x48e4a000
26232 close(3)                          = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7d88000
26232 mprotect(0x48dea000, 20480, PROT_READ) = 0
26232 set_thread_area({entry_number:-1 -> 6, base_addr:0xb7d88940, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
26232 munmap(0xb7f35000, 100308)        = 0
26232 brk(0)                            = 0x8095000
26232 brk(0x80b6000)                    = 0x80b6000
26232 open("/dev/null", O_RDWR)         = 3
26232 close(3)                          = 0
26232 gettimeofday({1166257914, 589855}, NULL) = 0
26232 socket(PF_INET, SOCK_DGRAM, IPPROTO_IP) = 3
26232 socket(PF_NETLINK, SOCK_RAW, 0)   = 4
26232 bind(4, {sa_family=AF_NETLINK, pid=0, groups=00000001}, 12) = 0
26232 ioctl(3, 0x8b36, 0xbffbb29c)      = -1 ENODEV (No such device)
26232 dup(2)                            = 5
26232 fcntl64(5, F_GETFL)               = 0x2 (flags O_RDWR)
26232 fstat64(5, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4d000
26232 _llseek(5, 0, 0xbffbacd4, SEEK_CUR) = -1 ESPIPE (Illegal seek)
26232 write(5, "ioctl[SIOCSIWPMKSA]: No such dev"..., 36) = 36
26232 close(5)                          = 0
26232 munmap(0xb7f4d000, 4096)          = 0
26232 ioctl(3, SIOCSIWMODE, 0xbffbb2a0) = -1 ENODEV (No such device)
26232 dup(2)                            = 5
26232 fcntl64(5, F_GETFL)               = 0x2 (flags O_RDWR)
26232 fstat64(5, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4d000
26232 _llseek(5, 0, 0xbffbad14, SEEK_CUR) = -1 ESPIPE (Illegal seek)
26232 write(5, "ioctl[SIOCSIWMODE]: No such devi"..., 35) = 35
26232 close(5)                          = 0
26232 munmap(0xb7f4d000, 4096)          = 0
26232 fstat64(1, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4d000
26232 write(1, "Could not configure driver to us"..., 47) = 47
26232 ioctl(3, SIOCGIFFLAGS, {ifr_name="eth1", ???}) = -1 ENODEV (No such device)
26232 dup(2)                            = 5
26232 fcntl64(5, F_GETFL)               = 0x2 (flags O_RDWR)
26232 fstat64(5, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4c000
26232 _llseek(5, 0, 0xbffbad14, SEEK_CUR) = -1 ESPIPE (Illegal seek)
26232 write(5, "ioctl[SIOCGIFFLAGS]: No such dev"..., 36) = 36
26232 close(5)                          = 0
26232 munmap(0xb7f4c000, 4096)          = 0
26232 write(1, "Could not set interface \'eth1\' U"..., 34) = 34
26232 ioctl(3, SIOCGIWRANGE, 0xbffbb308) = -1 ENODEV (No such device)
26232 dup(2)                            = 5
26232 fcntl64(5, F_GETFL)               = 0x2 (flags O_RDWR)
26232 fstat64(5, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4c000
26232 _llseek(5, 0, 0xbffbad54, SEEK_CUR) = -1 ESPIPE (Illegal seek)
26232 write(5, "ioctl[SIOCGIWRANGE]: No such dev"..., 36) = 36
26232 close(5)                          = 0
26232 munmap(0xb7f4c000, 4096)          = 0
26232 access("/proc/net", R_OK)         = 0
26232 access("/proc/net/unix", R_OK)    = 0
26232 socket(PF_FILE, SOCK_DGRAM, 0)    = 5
26232 ioctl(5, SIOCGIFINDEX, {ifr_name="eth1", ???}) = -1 ENODEV (No such device)
26232 close(5)                          = 0
26232 send(4, "-\0\0\0\23\0\1\0\1\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 45, 0) = 45
26232 socket(PF_PACKET, SOCK_DGRAM, 36488) = 5
26232 ioctl(5, SIOCGIFINDEX, {ifr_name="eth1", ???}) = -1 ENODEV (No such device)
26232 dup(2)                            = 6
26232 fcntl64(6, F_GETFL)               = 0x2 (flags O_RDWR)
26232 fstat64(6, {st_mode=S_IFCHR|0600, st_rdev=makedev(136, 0), ...}) = 0
26232 mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7f4c000
26232 _llseek(6, 0, 0xbffbad24, SEEK_CUR) = -1 ESPIPE (Illegal seek)
26232 write(6, "ioctl[SIOCGIFINDEX]: No such dev"..., 36) = 36
26232 close(6)                          = 0
26232 munmap(0xb7f4c000, 4096)          = 0
26232 close(5)                          = 0
26232 --- SIGSEGV (Segmentation fault) @ 0 (0) ---
26229 <... waitpid resumed> [{WIFSIGNALED(s) && WTERMSIG(s) == SIGSEGV}], 0) = 26232
26229 write(2, "/etc/wpa_supplicant/functions.sh"..., 252) = 252
26229 rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
26229 --- SIGCHLD (Child exited) @ 0 (0) ---


-- System Information:
Debian Release: testing/unstable
  APT prefers unstable
  APT policy: (990, 'unstable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.19.1
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)

Versions of packages wpasupplicant depends on:
ii  libc6                         2.3.6-19   GNU C Library: Shared libraries
ii  libdbus-1-3                   0.94-1     simple interprocess messaging syst
ii  libncurses5                   5.5-2      Shared libraries for terminal hand
ii  libreadline5                  5.2-1      GNU readline and history libraries
ii  libssl0.9.8                   0.9.8c-3   SSL shared libraries
ii  lsb-base                      3.1-12     Linux Standard Base 3.1 init scrip

Versions of packages wpasupplicant recommends:
ii  dhcp3-client                  3.0.4-10   DHCP Client

-- no debconf information




More information about the Pkg-wpa-devel mailing list