diff --git a/src/net/cgo_unix.go b/src/net/cgo_unix.go index 0a783d08a9..19bcd22231 100644 --- a/src/net/cgo_unix.go +++ b/src/net/cgo_unix.go @@ -320,6 +320,7 @@ func cgoResSearch(hostname string, rtype, class int) ([]dnsmessage.Resource, err defer releaseThread() state := (*_C_struct___res_state)(_C_malloc(unsafe.Sizeof(_C_struct___res_state{}))) + _C_memset(unsafe.Pointer(state), 0, uintptr(unsafe.Sizeof(*state))) defer _C_free(unsafe.Pointer(state)) if err := _C_res_ninit(state); err != nil { return nil, errors.New("res_ninit failure: " + err.Error()) diff --git a/src/net/cgo_unix_cgo.go b/src/net/cgo_unix_cgo.go index 7c609eddbf..3ea1b5ae87 100644 --- a/src/net/cgo_unix_cgo.go +++ b/src/net/cgo_unix_cgo.go @@ -58,6 +58,7 @@ type ( func _C_malloc(n uintptr) unsafe.Pointer { return C.malloc(C.size_t(n)) } func _C_free(p unsafe.Pointer) { C.free(p) } +func _C_memset(p unsafe.Pointer, c _C_int, n uintptr) { C.memset(p, c, C.size_t(n)) } func _C_ai_addr(ai *_C_struct_addrinfo) **_C_struct_sockaddr { return &ai.ai_addr } func _C_ai_family(ai *_C_struct_addrinfo) *_C_int { return &ai.ai_family }