mirror of https://github.com/golang/go.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
This commit is contained in:
parent
ea295a4cfb
commit
96e9e81b5f
|
|
@ -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<<i) == 0 {
|
||||
if m.Header.Addrs&(1<<i) == 0 {
|
||||
continue
|
||||
}
|
||||
rsa := (*RawSockaddr)(unsafe.Pointer(&b[0]))
|
||||
|
|
|
|||
Loading…
Reference in New Issue