BusyBox Bug and Patch Tracking
BusyBox
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0000940 [uClibc] Architecture Specific block always 07-10-06 12:11 11-04-06 10:34
Reporter jalsot View Status public  
Assigned To uClibc
Priority normal Resolution fixed  
Status closed   Product Version
Summary 0000940: iproute2 'OVERRUN: Bad address' on x86_64
Description Binaries from iproute2 from buildroot doesn't work on x86_64. It gives 'OVERRUN: Bad address' message. NETLINK is set in linux kernel, but it seems, the problem is in communication [see strace output].

On irc someboyd [mnemoc] has got the same issue. He had different gcc [gcc-4.1.1]. He has x86_64 as well. As he reported, on another architecture [I guess i686] the problem disappears with the same environment. He tried uclibc-0.9.28 as well without success. As he reported, with diet libc it works well with same version of kernel, iproute2 and compilation conditions.

I also tried iproute2-2.6.16-060323 but didn't help. As we the traces shows, the problem might be with uClibc.
Additional Information Host system: Ubuntu 6.0.6, 2.6.16.9, AMD64, gcc-4.0.3
Target system: buildroot r15663, x86_64, linux-2.6.17.4
Toolchain: uClibc-snapshot, gcc-3.4.6

strace output:
execve("/sbin/ip", ["ip", "link"], [/* 15 vars */]) = 0
mmap(NULL, 40, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2cea940000
stat("/etc/ld.so.cache", {st_mode=S_IFREG|0644, st_size=2373, ...}) = 0
open("/etc/ld.so.cache", O_RDONLY) = 3
mmap(NULL, 2373, PROT_READ, MAP_SHARED, 3, 0) = 0x2b2cea941000
close(3) = 0
open("/lib/libresolv.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=2152, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2cea942000
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0H\3\0\0\0"..., 4096) = 2152
mmap(NULL, 1052672, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2ceaa40000
mmap(0x2b2ceaa40000, 920, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2b2ceaa40000
mmap(0x2b2ceab40000, 1152, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2b2ceab40000
close(3) = 0
munmap(0x2b2cea942000, 4096) = 0
open("/lib/libgcc_s.so.1", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=141971, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2cea942000
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0\200\34\0"..., 4096) = 4096
mmap(NULL, 1093632, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2ceab41000
mmap(0x2b2ceab41000, 40332, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2b2ceab41000
mmap(0x2b2ceac4b000, 816, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0xa000) = 0x2b2ceac4b000
close(3) = 0
munmap(0x2b2cea942000, 4096) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=251656, ...}) = 0
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2cea942000
read(3, "\177ELF\2\1\1\0\0\0\0\0\0\0\0\0\3\0>\0\1\0\0\0P\270\0\0"..., 4096) = 4096
mmap(NULL, 1318912, PROT_NONE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2b2ceac4c000
mmap(0x2b2ceac4c000, 246768, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_FIXED, 3, 0) = 0x2b2ceac4c000
mmap(0x2b2cead88000, 3732, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x3c000) = 0x2b2cead88000
mmap(0x2b2cead89000, 20384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x2b2cead89000
close(3) = 0
munmap(0x2b2cea942000, 4096) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=251656, ...}) = 0
close(3) = 0
open("/lib/libc.so.0", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=251656, ...}) = 0
close(3) = 0
munmap(0x2b2cea941000, 2373) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {B38400 opost isig icanon echo ...}) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 3
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [140737488388096], 4) = 0
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=1154, groups=00000000}, [140737488355340]) = 0
time(NULL) = 1152565555
sendto(3, "\24\0\0\0\22\0\1\0034\301\262D\0\0\0\0\21\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{ptrace: umoven: Input/output error
0x7fff00000000, 16384}], msg_controllen=0, msg_flags=0}, 0) = 984
brk(0) = 0x522000
brk(0x523000) = 0x523000
recvmsg(3, 0x7fffc016c690, 0) = -1 EFAULT (Bad address)
write(2, "OVERRUN", 7OVERRUN) = 7
write(2, ": ", 2: ) = 2
write(2, "Bad address", 11Bad address) = 11
write(2, "\n", 1
) = 1
Attached Files

- Relationships

- Notes
(0001508)
mnemoc
07-10-06 12:31

i have the same problem with iproute2's ip and BB's ip (1.1.3 and 1.2.0) against uclibc 0.9.28 and uclibc snapshot (random days during the last two weeks).
gcc 4.1.1, using T2 (http://www.t2-project.org/) [^] instead of buildroot.

i'm attaching the syscall traces of uclibc/iproute2 and then dietlibc/iproute2, both static with the same versions of everything (gcc=4.1.1). this issue happens on x86_64 and not on athlon xp or p4. no idea about other 64bits architectures.

$ strace -vvfF ./uemb-2.3-trunk-mnemosyne-x86-64-opteron/sbin/ip addr show
execve("./uemb-2.3-trunk-mnemosyne-x86-64-opteron/sbin/ip", ["./uemb-2.3-trunk-mnemosyne-x86-6"..., "addr", "show"], ["MANPATH=/usr/share/man", "SHELL=/bin/bash", "TERM=screen", "USER=amery", "HISTFILESIZE=50", "T2DOWNOPT=-alt-dir /voldata/down"..., "LS_COLORS=", "TERMCAP=SC|screen|VT 100/ANSI X3"..., "PAGER=less -R", "PATH=/command:/home/amery/bin:/c"..., "STY=8661.mnemoc", "BLOCKSIZE=K", "PWD=/home/amery/building/t2-trun"..., "INPUTRC=/etc/inputrc", "EDITOR=vi", "PS1=\\[\\033[1;34m\\][\\[\\033[1;36m\\"..., "SVN_SSH=ssh -i /home/amery/.ssh/"..., "HISTCONTROL=ignoredups", "HOME=/home/amery", "SHLVL=2", "LOGNAME=amery", "LESS=--ignore-case", "CVS_RSH=ssh", "WINDOW=4", "PKG_CONFIG_PATH=/usr/lib/pkgconf"..., "LESSOPEN=|lesspipe %s", "BROWSER=links", "INFOPATH=/usr/share/info", "OLDPWD=/home/amery/building/t2-t"..., "_=/usr/bin/strace"]) = 0
ioctl(0, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x2504, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
ioctl(1, SNDCTL_TMR_TIMEBASE or TCGETS, {c_iflags=0x2504, c_oflags=0x5, c_cflags=0xbf, c_lflags=0x8a3b, c_line=0, c_cc="\x03\x1c\x7f\x15\x04\x00\x01\x00\x11\x13\x1a\x00\x12\x0f\x17\x16\x00\x00\x00"}) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 3
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [140737488388096], 4) = 0
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=5561, groups=00000000}, [18412476522519592972]) = 0
time(NULL) = 1152559095
sendto(3, "\24\0\0\0\22\0\1\3\370\247\262D\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{ptrace: umoven: Input/output error
0x7fff00000000, 16384}], msg_controllen=0, msg_flags=0}, 0) = 236
brk(0) = 0x636000
brk(0x637000) = 0x637000
recvmsg(3, 0x7fffff862d70, 0) = -1 EFAULT (Bad address)
write(2, "OVERRUN", 7OVERRUN) = 7
write(2, ": ", 2: ) = 2
write(2, "Bad address", 11Bad address) = 11
write(2, "\n", 1
) = 1

$ strace -vvfF ./dietemb-2.3-trunk-mnemosyne-x86-64-opteron/sbin/ip addr show
execve("./dietemb-2.3-trunk-mnemosyne-x86-64-opteron/sbin/ip", ["./dietemb-2.3-trunk-mnemosyne-x8"..., "addr", "show"], ["MANPATH=/usr/share/man", "SHELL=/bin/bash", "TERM=screen", "USER=amery", "HISTFILESIZE=50", "T2DOWNOPT=-alt-dir /voldata/down"..., "LS_COLORS=", "TERMCAP=SC|screen|VT 100/ANSI X3"..., "PAGER=less -R", "PATH=/command:/home/amery/bin:/c"..., "STY=8661.mnemoc", "BLOCKSIZE=K", "PWD=/home/amery/building/t2-trun"..., "INPUTRC=/etc/inputrc", "EDITOR=vi", "PS1=\\[\\033[1;34m\\][\\[\\033[1;36m\\"..., "SVN_SSH=ssh -i /home/amery/.ssh/"..., "HISTCONTROL=ignoredups", "HOME=/home/amery", "SHLVL=2", "LOGNAME=amery", "LESS=--ignore-case", "CVS_RSH=ssh", "WINDOW=4", "PKG_CONFIG_PATH=/usr/lib/pkgconf"..., "LESSOPEN=|lesspipe %s", "BROWSER=links", "INFOPATH=/usr/share/info", "OLDPWD=/home/amery/building/t2-t"..., "_=/usr/bin/strace"]) = 0
socket(PF_NETLINK, SOCK_RAW, 0) = 3
setsockopt(3, SOL_SOCKET, SO_SNDBUF, [32768], 4) = 0
setsockopt(3, SOL_SOCKET, SO_RCVBUF, [140737488388096], 4) = 0
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=5758, groups=00000000}, [18418382205630808076]) = 0
time(NULL) = 1152559188
sendto(3, "\24\0\0\0\22\0\1\3U\250\262D\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\354\0\0\0\20\0\2\0U\250\262D~\26\0\0\0\0\1\0\22\0\0\0"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 236
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af0f5272000
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af0f5273000
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0U\250\262D~\26\0\0\0\0\0\0\22\0\0\0\303"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 20
sendto(3, "\24\0\0\0\26\0\1\3V\250\262D\0\0\0\0\0\0\0\0", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"D\0\0\0\24\0\2\0V\250\262D~\26\0\0\2\30\201\0\22\0\0\0"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 68
mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x2af0f5274000
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0V\250\262D~\26\0\0\0\0\0\0\22\0\0\0\10"..., 16384}], msg_controllen=0, msg_flags=0}, 0) = 20
socket(PF_INET, SOCK_STREAM, IPPROTO_IP) = 4
ioctl(4, SIOCGIFTXQLEN, 0x7fffff9b28e0) = 0
close(4) = 0
write(1, "18: dummy0: <BROADCAST,NOARP,UP>"..., 5718: dummy0: <BROADCAST,NOARP,UP> mtu 1500 qdisc noqueue
) = 57
write(1, " link/ether 06:4c:27:44:2e:92"..., 55 link/ether 06:4c:27:44:2e:92 brd ff:ff:ff:ff:ff:ff
) = 55
write(1, " inet 192.168.20.1/24 brd 192"..., 74 inet 192.168.20.1/24 brd 192.168.20.255 scope global secondary dummy0
) = 74
_exit(0)
 
(0001512)
jalsot
07-10-06 15:06

What is interesting, e.g. 'ip link set eth0 mtu 1200' and 'ip rule' works partially:
# ip rule
0: from all lookup local
32766: from all lookup main
32767: from all lookup default
OVERRUN: Bad address
 
(0001729)
andersen
11-04-06 10:34

fixed with svn commit 16494
 

- Issue History
Date Modified Username Field Change
07-10-06 12:11 jalsot New Issue
07-10-06 12:11 jalsot Status new => assigned
07-10-06 12:11 jalsot Assigned To  => uClibc
07-10-06 12:25 mnemoc Issue Monitored: mnemoc
07-10-06 12:31 mnemoc Note Added: 0001508
07-10-06 15:06 jalsot Note Added: 0001512
11-04-06 10:34 andersen Note Added: 0001729
11-04-06 10:34 andersen Status assigned => closed
11-04-06 10:34 andersen Resolution open => fixed


Copyright © 2000 - 2006 Mantis Group
Powered by Mantis Bugtracker