Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
route: treat short sockaddr lengths as unspecified
Previously, we enforced minimum length requirements for sockaddr, but the route command can legitimately parse shorter lengths. This change treats any sockaddr with length less than the address offset as an unspecified address (0.0.0.0 for IPv4 or :: for IPv6), as discern by monitoring the route command. To replicate the issue, prior to the fix, execute the following: First: route -n monitor Next: sudo route -n add -inet6 -ifscope en11 -net :: \ -netmask :: fe80::2d0:4cff:fe10:15d2 The route command that is actively monitoring will print something such as: RTM_ADD: Add Route: len 152, pid: 81198, seq 1, errno 0, ifscope 13, flags:<UP,GATEWAY,DONE,STATIC,IFSCOPE> locks: inits: sockaddrs: <DST,GATEWAY,NETMASK> :: fe80::2d0:4cff:fe10:15d2 :: Prior to the fix, if you had attempted parse the above message, PareRIB would have returned errInvalidAddr which is clearly false. Fixes golang/go#71557 Change-Id: Iec86cc9b05a765b6e67e95a4e30ff31f66f3d17e GitHub-Last-Rev: 396d8a2 GitHub-Pull-Request: #231 Reviewed-on: https://go-review.googlesource.com/c/net/+/646556 Commit-Queue: Ian Lance Taylor <iant@google.com> Reviewed-by: Damien Neil <dneil@google.com> LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com> Auto-Submit: Ian Lance Taylor <iant@google.com> Reviewed-by: Ian Lance Taylor <iant@google.com>
- Loading branch information