From b52f5441ce4ee981d7a9295a5ddad71e196486a7 Mon Sep 17 00:00:00 2001 From: Mateusz Poliwczak Date: Tue, 30 May 2023 08:16:36 +0000 Subject: [PATCH] unix: add Getresuid, Getresgid for linux Fixes golang/go#60483 Change-Id: Id4c1bf8367066485a16bedeea337c384a3555942 GitHub-Last-Rev: 61f0fe6f6a5be1cd34ddf99e72a75cfd32355793 GitHub-Pull-Request: golang/sys#159 Reviewed-on: https://go-review.googlesource.com/c/sys/+/499055 Run-TryBot: Ian Lance Taylor Reviewed-by: Ian Lance Taylor TryBot-Result: Gopher Robot Run-TryBot: Ian Lance Taylor Auto-Submit: Ian Lance Taylor Reviewed-by: Tobias Klauser Reviewed-by: Michael Knyszek --- unix/syscall_linux.go | 15 +++++++++++++++ unix/zsyscall_linux.go | 14 ++++++++++++++ 2 files changed, 29 insertions(+) diff --git a/unix/syscall_linux.go b/unix/syscall_linux.go index fbaeb5fff..aa0c55151 100644 --- a/unix/syscall_linux.go +++ b/unix/syscall_linux.go @@ -2420,6 +2420,21 @@ func PthreadSigmask(how int, set, oldset *Sigset_t) error { return rtSigprocmask(how, set, oldset, _C__NSIG/8) } +//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) +//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) + +func Getresuid() (ruid, euid, suid int) { + var r, e, s _C_int + getresuid(&r, &e, &s) + return int(r), int(e), int(s) +} + +func Getresgid() (rgid, egid, sgid int) { + var r, e, s _C_int + getresgid(&r, &e, &s) + return int(r), int(e), int(s) +} + /* * Unimplemented */ diff --git a/unix/zsyscall_linux.go b/unix/zsyscall_linux.go index da63d9d78..722c29a00 100644 --- a/unix/zsyscall_linux.go +++ b/unix/zsyscall_linux.go @@ -2172,3 +2172,17 @@ func rtSigprocmask(how int, set *Sigset_t, oldset *Sigset_t, sigsetsize uintptr) } return } + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresuid(ruid *_C_int, euid *_C_int, suid *_C_int) { + RawSyscallNoError(SYS_GETRESUID, uintptr(unsafe.Pointer(ruid)), uintptr(unsafe.Pointer(euid)), uintptr(unsafe.Pointer(suid))) + return +} + +// THIS FILE IS GENERATED BY THE COMMAND AT THE TOP; DO NOT EDIT + +func getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int) { + RawSyscallNoError(SYS_GETRESGID, uintptr(unsafe.Pointer(rgid)), uintptr(unsafe.Pointer(egid)), uintptr(unsafe.Pointer(sgid))) + return +}