From: Ross Light Date: Thu, 31 Mar 2016 21:57:49 +0000 (-0700) Subject: os/user: wrap getgrnam_r to fix type issues X-Git-Tag: go1.7beta1~865 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=530e2164940d6650c43ecc8c652eed557e0bff8a;p=gostls13.git os/user: wrap getgrnam_r to fix type issues Even with -D_POSIX_PTHREAD_SEMANTICS, Solaris seems to not define getgrnam_r in a POSIX compatible way. Fixes #14967 Change-Id: I78cb7e5b30b2d8b860e336060a0a06f4720c0475 Reviewed-on: https://go-review.googlesource.com/21385 Reviewed-by: Brad Fitzpatrick Run-TryBot: Brad Fitzpatrick TryBot-Result: Gobot Gobot --- diff --git a/src/os/user/lookup_unix.go b/src/os/user/lookup_unix.go index 97b649cdad..58ecf32405 100644 --- a/src/os/user/lookup_unix.go +++ b/src/os/user/lookup_unix.go @@ -37,6 +37,11 @@ static int mygetgrgid_r(int gid, struct group *grp, char *buf, size_t buflen, struct group **result) { return getgrgid_r(gid, grp, buf, buflen, result); } + +static int mygetgrnam_r(const char *name, struct group *grp, + char *buf, size_t buflen, struct group **result) { + return getgrnam_r(name, grp, buf, buflen, result); +} */ import "C" @@ -139,7 +144,7 @@ func lookupGroup(groupname string) (*Group, error) { defer C.free(unsafe.Pointer(cname)) err := retryWithBuffer(buf, func() syscall.Errno { - return syscall.Errno(C.getgrnam_r(cname, + return syscall.Errno(C.mygetgrnam_r(cname, &grp, (*C.char)(buf.ptr), C.size_t(buf.size),