mirror of
https://github.com/golang/net.git
synced 2026-03-31 02:17:08 +09:00
ipv4: work around FreeBSD 12.0 kernel running COMPAT_FREEBSD32
Followup for CL 168297, a fix was released for the kernel bug https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236737 https://svnweb.freebsd.org/base?view=revision&revision=345741 https://svnweb.freebsd.org/base?view=revision&revision=346019 https://svnweb.freebsd.org/base?view=revision&revision=346020 Thus the bug won't affect 11.3-RELEASE and 12.1-RELEASE when they are out. Update adjustFreeBSD32 to handle only FreeBSD 12.0-RELEASE ranges of freebsdVersion. Updates golang/go#30899 Change-Id: I6beeaa55023dbe86a3d6fd8d6d5094516ec6978a Reviewed-on: https://go-review.googlesource.com/c/net/+/171937 Reviewed-by: Brad Fitzpatrick <bradfitz@golang.org> Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org> TryBot-Result: Gobot Gobot <gobot@golang.org>
This commit is contained in:
committed by
Tobias Klauser
parent
eb5bcb51f2
commit
4a65cf94b6
@@ -24,14 +24,15 @@ var (
|
||||
errNoSuchMulticastInterface = errors.New("no such multicast interface")
|
||||
errNotImplemented = errors.New("not implemented on " + runtime.GOOS + "/" + runtime.GOARCH)
|
||||
|
||||
// See http://www.freebsd.org/doc/en/books/porters-handbook/freebsd-versions.html.
|
||||
// See https://www.freebsd.org/doc/en/books/porters-handbook/versions.html.
|
||||
freebsdVersion uint32
|
||||
compatFreeBSD32 bool // 386 emulation on amd64
|
||||
)
|
||||
|
||||
// See golang.org/issue/30899.
|
||||
func adjustFreeBSD32(m *socket.Message) {
|
||||
if freebsdVersion >= 1103000 {
|
||||
// FreeBSD 12.0-RELEASE is affected by https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=236737
|
||||
if freebsdVersion >= 1200086 && freebsdVersion < 1201000 {
|
||||
l := (m.NN + 4 - 1) &^ (4 - 1)
|
||||
if m.NN < l && l <= len(m.OOB) {
|
||||
m.NN = l
|
||||
|
||||
Reference in New Issue
Block a user