diff options
Diffstat (limited to 'libgo')
-rw-r--r-- | libgo/go/os/user/lookup_unix.go | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/libgo/go/os/user/lookup_unix.go b/libgo/go/os/user/lookup_unix.go index 68f8914..ebc86848 100644 --- a/libgo/go/os/user/lookup_unix.go +++ b/libgo/go/os/user/lookup_unix.go @@ -73,11 +73,14 @@ func lookup(uid int, username string, lookupByName bool) (*User, error) { const bufSize = 1024 buf := make([]byte, bufSize) if lookupByName { - rv := libc_getpwnam_r(syscall.StringBytePtr(username), + p := syscall.StringBytePtr(username) + syscall.Entersyscall() + rv := libc_getpwnam_r(p, &pwd, &buf[0], bufSize, &result) + syscall.Exitsyscall() if rv != 0 { return nil, fmt.Errorf("user: lookup username %s: %s", username, syscall.GetErrno()) } @@ -85,11 +88,13 @@ func lookup(uid int, username string, lookupByName bool) (*User, error) { return nil, UnknownUserError(username) } } else { + syscall.Entersyscall() rv := libc_getpwuid_r(syscall.Uid_t(uid), &pwd, &buf[0], bufSize, &result) + syscall.Exitsyscall() if rv != 0 { return nil, fmt.Errorf("user: lookup userid %d: %s", uid, syscall.GetErrno()) } |