ipv6: Handle IPv4-mapped src to in6addr_any dst.
authorJonathan T. Leighton <jtleight@udel.edu>
Wed, 24 May 2017 01:53:33 +0000 (21:53 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 Jun 2017 04:41:49 +0000 (06:41 +0200)
commit12ec2560d467812424ff8eb6f7fccc83f64aae3d
tree6f5c8a80aec02f93910891060f2c8ac7191260da
parent116589a5a7e0f3dc91a50b9d39365306b2198680
ipv6: Handle IPv4-mapped src to in6addr_any dst.

[ Upstream commit 052d2369d1b479cdbbe020fdd6d057d3c342db74 ]

This patch adds a check on the type of the source address for the case
where the destination address is in6addr_any. If the source is an
IPv4-mapped IPv6 source address, the destination is changed to
::ffff:127.0.0.1, and otherwise the destination is changed to ::1. This
is done in three locations to handle UDP calls to either connect() or
sendmsg() and TCP calls to connect(). Note that udpv6_sendmsg() delays
handling an in6addr_any destination until very late, so the patch only
needs to handle the case where the source is an IPv4-mapped IPv6
address.

Signed-off-by: Jonathan T. Leighton <jtleight@udel.edu>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Sasha Levin <alexander.levin@verizon.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
net/ipv6/datagram.c
net/ipv6/tcp_ipv6.c
net/ipv6/udp.c