ipv4: Fix raw socket lookup for local traffic
authorDavid Ahern <dsahern@gmail.com>
Wed, 8 May 2019 03:44:59 +0000 (20:44 -0700)
committerDavid S. Miller <davem@davemloft.net>
Wed, 8 May 2019 16:38:30 +0000 (09:38 -0700)
commit19e4e768064a87b073a4b4c138b55db70e0cfb9f
tree693ae44cd5a3ecbd326293bcad8ac2fff0b2a407
parente9919a24d3022f72bcadc407e73a6ef17093a849
ipv4: Fix raw socket lookup for local traffic

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>
net/ipv4/raw.c