From 96e9e81b5f353636965fa6ba5e014c2bab13fadc Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 28 Oct 2014 11:35:00 -0400 Subject: [PATCH] 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 --- src/syscall/route_bsd.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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<