]> git.hungrycats.org Git - linux/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)
committerBen Hutchings <ben@decadent.org.uk>
Mon, 23 Sep 2019 20:12:01 +0000 (21:12 +0100)
commit42e9b805a5a334c8673dd204415977abea57d71a
tree70cf604ca862aa83f194ecea3d5d1f13495ec677
parentcc8b1a5dd2df701c7d619d12b90c6f341743340c
ipv4: Fix raw socket lookup for local traffic

commit 19e4e768064a87b073a4b4c138b55db70e0cfb9f upstream.

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>
[bwh: Backported to 3.16: adjust context]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
net/ipv4/raw.c