summaryrefslogtreecommitdiff
path: root/net/kcm
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2017-02-14 12:13:52 -0500
committerDavid S. Miller <davem@davemloft.net>2017-02-14 12:13:52 -0500
commit144adc655fac089d485ee66354d402b319cff6d2 (patch)
tree16f83a2393edec2827eac68eac1d1e739dcb862f /net/kcm
parentfed06ee89b78d3af32e235e0e89ad0d946fcb95d (diff)
parent052d2369d1b479cdbbe020fdd6d057d3c342db74 (diff)
Merge branch 'ipv6-v4mapped'
Jonathan T. Leighton says: ==================== IPv4-mapped on wire, :: dst address issue Under some circumstances IPv6 datagrams are sent with IPv4-mapped IPv6 addresses as the source. Given an IPv6 socket bound to an IPv4-mapped IPv6 address, and an IPv6 destination address, both TCP and UDP will will send packets using the IPv4-mapped IPv6 address as the source. Per RFC 6890 (Table 20), IPv4-mapped IPv6 source addresses are not allowed in an IP datagram. The problem can be observed by attempting to connect() either a TCP or UDP socket, or by using sendmsg() with a UDP socket. The patch is intended to correct this issue for all socket types. linux follows the BSD convention that an IPv6 destination address specified as in6addr_any is converted to the loopback address. Currently, neither TCP nor UDP consider the possibility that the source address is an IPv4-mapped IPv6 address, and assume that the appropriate loopback address is ::1. The patch adds a check on whether or not the source address is an IPv4-mapped IPv6 address and then sets the destination address to either ::ffff:127.0.0.1 or ::1, as appropriate. ==================== Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/kcm')
0 files changed, 0 insertions, 0 deletions