]> Cypherpunks repositories - gostls13.git/commitdiff
net: use and assert correct res state size at compile time when cgo available on...
authorMateusz Poliwczak <mpoliwczak34@gmail.com>
Thu, 11 May 2023 08:21:21 +0000 (08:21 +0000)
committerGopher Robot <gobot@golang.org>
Tue, 16 May 2023 16:01:08 +0000 (16:01 +0000)
Change-Id: I961bb18604dd1568ea21431545f43aa6a417b3d9
GitHub-Last-Rev: 735f3364a4f2182f3e3e1b84f39a042e86987967
GitHub-Pull-Request: golang/go#60046
Reviewed-on: https://go-review.googlesource.com/c/go/+/493415
Auto-Submit: Ian Lance Taylor <iant@google.com>
Run-TryBot: Mateusz Poliwczak <mpoliwczak34@gmail.com>
Reviewed-by: Ian Lance Taylor <iant@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Ian Lance Taylor <iant@google.com>
Reviewed-by: Heschi Kreinick <heschi@google.com>
src/internal/syscall/unix/net_darwin.go
src/net/cgo_unix_cgo_darwin.go [new file with mode: 0644]

index 8b908ae600625966a9724b3dc5c3c32810b16a32..5601b4975045f0fd45c8762ca5d26d1913e98e81 100644 (file)
@@ -119,7 +119,7 @@ func syscall_syscall6X(fn, a1, a2, a3, a4, a5, a6 uintptr) (r1, r2 uintptr, err
 func syscall_syscall9(fn, a1, a2, a3, a4, a5, a6, a7, a8, a9 uintptr) (r1, r2 uintptr, err syscall.Errno)
 
 type ResState struct {
-       unexported [70]uintptr
+       unexported [69]uintptr
 }
 
 //go:cgo_import_dynamic libresolv_res_9_ninit res_9_ninit "/usr/lib/libresolv.9.dylib"
diff --git a/src/net/cgo_unix_cgo_darwin.go b/src/net/cgo_unix_cgo_darwin.go
new file mode 100644 (file)
index 0000000..40d5e42
--- /dev/null
@@ -0,0 +1,21 @@
+// Copyright 2023 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+//go:build !netgo && cgo && darwin
+
+package net
+
+/*
+#include <resolv.h>
+*/
+import "C"
+
+import (
+       "internal/syscall/unix"
+       "unsafe"
+)
+
+// This will cause a compile error when the size of
+// unix.ResState is too small.
+type _ [unsafe.Sizeof(unix.ResState{}) - unsafe.Sizeof(C.struct___res_state{})]byte