зеркало из https://github.com/golang/net.git
route: work around macOS kernel bug
The macOS kernel reliably crashes in a repeated TestRouteMessage. Putting some extra padding into the request buffer avoids the crash. This will do as workaround; the kernel bug will be reported to Apple separately. Fixes golang/go#22456. Change-Id: I789d3d57fbc511016d9f4a3fa7662d6c7642f137 Reviewed-on: https://go-review.googlesource.com/73690 Run-TryBot: Russ Cox <rsc@golang.org> Reviewed-by: Austin Clements <austin@google.com> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
Родитель
4b14673ba3
Коммит
7b572d500b
|
@ -6,7 +6,10 @@
|
|||
|
||||
package route
|
||||
|
||||
import "syscall"
|
||||
import (
|
||||
"runtime"
|
||||
"syscall"
|
||||
)
|
||||
|
||||
func (m *RouteMessage) marshal() ([]byte, error) {
|
||||
w, ok := wireFormats[m.Type]
|
||||
|
@ -14,6 +17,11 @@ func (m *RouteMessage) marshal() ([]byte, error) {
|
|||
return nil, errUnsupportedMessage
|
||||
}
|
||||
l := w.bodyOff + addrsSpace(m.Addrs)
|
||||
if runtime.GOOS == "darwin" {
|
||||
// Fix stray pointer writes on macOS.
|
||||
// See golang.org/issue/22456.
|
||||
l += 1024
|
||||
}
|
||||
b := make([]byte, l)
|
||||
nativeEndian.PutUint16(b[:2], uint16(l))
|
||||
if m.Version == 0 {
|
||||
|
|
Загрузка…
Ссылка в новой задаче