diff options
author | Tamir Duberstein <tamird@google.com> | 2018-09-26 12:39:32 -0700 |
---|---|---|
committer | Shentubot <shentubot@google.com> | 2018-09-26 12:41:04 -0700 |
commit | 539df2940d4f39191b1b985e6588ca7e9529a8df (patch) | |
tree | 8eed28ba4c4e645ecc653fbd42268e828e0816f3 /pkg/tcpip/network/fragmentation | |
parent | bee264f0c5b41dde1f51c5a65e84dfab2ac4d40b (diff) |
Use the ICMP target address in responses
There is a subtle bug that is the result of two changes made when upstreaming
ICMPv6 support from Fuchsia:
1) ipv6.endpoint.WritePacket writes the local address it was initialized with,
rather than the provided route's local address
2) ipv6.endpoint.handleICMP doesn't set its route's local address to the ICMP
target address before writing the response
The result is that the ICMP response erroneously uses the target ipv6 address
(rather than icmp) as its source address in the response. When trying to debug
this by fixing (2), we ran into problems with bad ipv6 checksums because (1)
didn't respect the local address of the route being passed to it.
This fixes both problems.
PiperOrigin-RevId: 214650822
Change-Id: Ib6148bf432e6428d760ef9da35faef8e4b610d69
Diffstat (limited to 'pkg/tcpip/network/fragmentation')
0 files changed, 0 insertions, 0 deletions