diff options
author | Eric Dumazet <edumazet@google.com> | 2015-07-27 11:33:50 +0200 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-07-28 23:41:24 -0700 |
commit | 11c91ef98f37cd743098de26160fffd7f9bd40e1 (patch) | |
tree | fbac25bfba3cd3487b659d37cf31d5d9d5c7070a /net/packet | |
parent | 865b804244f228e80fb62abe464296399253cce8 (diff) | |
download | linux-stable-11c91ef98f37cd743098de26160fffd7f9bd40e1.tar.gz linux-stable-11c91ef98f37cd743098de26160fffd7f9bd40e1.tar.bz2 linux-stable-11c91ef98f37cd743098de26160fffd7f9bd40e1.zip |
arp: filter NOARP neighbours for SIOCGARP
When arp is off on a device, and ioctl(SIOCGARP) is queried,
a buggy answer is given with MAC address of the device, instead
of the mac address of the destination/gateway.
We filter out NUD_NOARP neighbours for /proc/net/arp,
we must do the same for SIOCGARP ioctl.
Tested:
lpaa23:~# ./arp 10.246.7.190
MAC=00:01:e8:22:cb:1d // correct answer
lpaa23:~# ip link set dev eth0 arp off
lpaa23:~# cat /proc/net/arp # check arp table is now 'empty'
IP address HW type Flags HW address Mask Device
lpaa23:~# ./arp 10.246.7.190
MAC=00:1a:11:c3:0d:7f // buggy answer before patch (this is eth0 mac)
After patch :
lpaa23:~# ip link set dev eth0 arp off
lpaa23:~# ./arp 10.246.7.190
ioctl(SIOCGARP) failed: No such device or address
Signed-off-by: Eric Dumazet <edumazet@google.com>
Reported-by: Vytautas Valancius <valas@google.com>
Cc: Willem de Bruijn <willemb@google.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/packet')
0 files changed, 0 insertions, 0 deletions