ip route add bug in 1.25.0

Natanael Copa ncopa at alpinelinux.org
Fri Aug 5 13:45:40 UTC 2016


Hi,

  ip route add 0.0.0.0/0 via <some ip> dev eth0


This results in default route not being set which results in broken
network in alpine linux. This worked just fine in busybox-1.24.x

The test case I have been using in my local network is:

$ sudo busybox ip route add 192.168.0.0/24 via 10.98.106.9 dev wlan0
ip: RTNETLINK answers: Invalid argument

With strace:


$ sudo strace busybox ip route add 192.168.0.0/24 via 10.98.106.9 dev wlan0
execve("/bin/busybox", ["busybox", "ip", "route", "add", "192.168.0.0/24", "via", "10.98.106.9", "dev", "wlan0"], [/* 18 vars */]) = 0
arch_prctl(ARCH_SET_FS, 0x685076d07c48) = 0
set_tid_address(0x685076d07c80)         = 6247
mprotect(0x685076d04000, 4096, PROT_READ) = 0
mprotect(0x1f855b2d000, 16384, PROT_READ) = 0
getuid()                                = 0
socket(AF_NETLINK, SOCK_RAW, NETLINK_ROUTE) = 3
bind(3, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 0
getsockname(3, {sa_family=AF_NETLINK, pid=6247, groups=00000000}, [12]) = 0
sendto(3, "\24\0\0\0\22\0\1\3\357\227\244W\0\0\0\0\0\2515X", 20, 0, {sa_family=AF_NETLINK, pid=0, groups=00000000}, 12) = 20
brk(NULL)                               = 0x1f8589d7f20
brk(0x1f8589db000)                      = 0x1f8589db000
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\234\4\0\0\20\0\2\0\357\227\244Wg\30\0\0\0\0\4\3\1\0\0\0I\0\1\0\0\0\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 3540
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\240\4\0\0\20\0\2\0\357\227\244Wg\30\0\0\0\0\1\0\4\0\0\0\2\20\0\0\0\0\0\0"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 4192
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\24\0\0\0\3\0\2\0\357\227\244Wg\30\0\0\0\0\0\0", 8192}], msg_controllen=0, msg_flags=0}, 0) = 20
socket(AF_LOCAL, SOCK_DGRAM|SOCK_CLOEXEC, 0) = 4
ioctl(4, SIOCGIFINDEX, {ifr_name="wlan0", }) = 0
close(4)                                = 0
sendmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"4\0\0\0\30\0\5\6\360\227\244W\0\0\0\0\2\30\0\0\376\3\377\1\0\0\0\0\10\0\1\0"..., 52}], msg_controllen=0, msg_flags=0}, 0) = 52
recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"H\0\0\0\2\0\0\0\360\227\244Wg\30\0\0\352\377\377\3774\0\0\0\30\0\5\6\360\227\244W"..., 8192}], msg_controllen=0, msg_flags=0}, 0) = 72
write(2, "ip: RTNETLINK answers: Invalid a"..., 40ip: RTNETLINK answers: Invalid argument
) = 40
exit_group(2)                           = ?
+++ exited with 2 +++




I didn't have time to investigate it futher, but will continue as soon
I get time, but decided to post it here in case someone beats me to it.

Thanks

-nc


More information about the busybox mailing list