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>
diff --git a/ipv4/helper.go b/ipv4/helper.go
index a4457d6..25e7568 100644
--- a/ipv4/helper.go
+++ b/ipv4/helper.go
@@ -24,14 +24,15 @@
 	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