From fc876f22b348202addb9294a6fe8570cdbfa1753 Mon Sep 17 00:00:00 2001 From: Ian Lance Taylor Date: Thu, 1 Feb 2018 15:49:53 +0000 Subject: [PATCH] net: declare lib_getaddrinfo as returning int32 Otherwise on a 64-bit system we will read the 32-bit value as a 64-bit value. Since getaddrinfo returns negative numbers as error values, these will be interpreted as numbers like 0xfffffffe rather than -2, and the comparisons with values like syscall.EAI_NONAME will fail. Fixes golang/go#23645 Reviewed-on: https://go-review.googlesource.com/91296 From-SVN: r257299 --- gcc/go/gofrontend/MERGE | 2 +- libgo/go/net/cgo_unix.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gcc/go/gofrontend/MERGE b/gcc/go/gofrontend/MERGE index 7dc00636527..935c0880db8 100644 --- a/gcc/go/gofrontend/MERGE +++ b/gcc/go/gofrontend/MERGE @@ -1,4 +1,4 @@ -71758f9ca1804743afe178f0e2fca489e0217474 +b833695618d1a5d9d531f5ba0f9c07c7e35e0073 The first line of this file holds the git revision number of the last merge done from the gofrontend repository. diff --git a/libgo/go/net/cgo_unix.go b/libgo/go/net/cgo_unix.go index 5866d384820..5ea13bcba8d 100644 --- a/libgo/go/net/cgo_unix.go +++ b/libgo/go/net/cgo_unix.go @@ -23,7 +23,7 @@ import ( ) //extern getaddrinfo -func libc_getaddrinfo(node *byte, service *byte, hints *syscall.Addrinfo, res **syscall.Addrinfo) int +func libc_getaddrinfo(node *byte, service *byte, hints *syscall.Addrinfo, res **syscall.Addrinfo) int32 //extern freeaddrinfo func libc_freeaddrinfo(res *syscall.Addrinfo) -- 2.30.2