]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
ipv4: Fix raw socket lookup for local traffic
authorDavid Ahern <dsahern@gmail.com>
Wed, 8 May 2019 03:44:59 +0000 (20:44 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 16 May 2019 07:17:24 +0000 (09:17 +0200)
commitae0f0ebd83c2390fa31ed7ddeba234587236a885
tree5f4cd05a96c1bacddec653d4054cfce2038fc9af
parent860e91819fed01fb020dbdc035eb21e1fab3796a
ipv4: Fix raw socket lookup for local traffic

[ Upstream commit 19e4e768064a87b073a4b4c138b55db70e0cfb9f ]

inet_iif should be used for the raw socket lookup. inet_iif considers
rt_iif which handles the case of local traffic.

As it stands, ping to a local address with the '-I <dev>' option fails
ever since ping was changed to use SO_BINDTODEVICE instead of
cmsg + IP_PKTINFO.

IPv6 works fine.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Signed-off-by: David Ahern <dsahern@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv4/raw.c