From: Russ Cox Date: Tue, 28 Oct 2014 15:35:00 +0000 (-0400) Subject: syscall: fix ParseRoutingSockaddr with unexpected submessages X-Git-Tag: go1.4beta1~28 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=96e9e81b5f353636965fa6ba5e014c2bab13fadc;p=gostls13.git syscall: fix ParseRoutingSockaddr with unexpected submessages No easy way to test (would have to actually trigger some routing events from kernel) but the code is clearly wrong as written. If the header says there is a submessage, we need to at least skip over its bytes, not just continue to the next iteration. Fixes #8203. LGTM=r R=r CC=golang-codereviews, mikioh.mikioh, p https://golang.org/cl/164140044 --- diff --git a/src/syscall/route_bsd.go b/src/syscall/route_bsd.go index 48af587450..1dabe42531 100644 --- a/src/syscall/route_bsd.go +++ b/src/syscall/route_bsd.go @@ -153,7 +153,7 @@ func (m *InterfaceAddrMessage) sockaddr() (sas []Sockaddr) { // RTAX_NETMASK socket address on the FreeBSD kernel. preferredFamily := uint8(AF_UNSPEC) for i := uint(0); i < RTAX_MAX; i++ { - if m.Header.Addrs&rtaIfaMask&(1<