Skip to content

Commit cff1170

Browse files
committed
unix: add Getresuid and Getresgid for OpenBSD
Addresses golang/go#60483. This change was successfully tested on amd64 and adjusted accordingly for the other architectures.
1 parent b52f544 commit cff1170

15 files changed

+247
-6
lines changed

unix/syscall_openbsd.go

Lines changed: 15 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,21 @@ func Getfsstat(buf []Statfs_t, flags int) (n int, err error) {
151151
return
152152
}
153153

154+
//sysnb getresuid(ruid *_C_int, euid *_C_int, suid *_C_int)
155+
//sysnb getresgid(rgid *_C_int, egid *_C_int, sgid *_C_int)
156+
157+
func Getresuid() (ruid, euid, suid int) {
158+
var r, e, s _C_int
159+
getresuid(&r, &e, &s)
160+
return int(r), int(e), int(s)
161+
}
162+
163+
func Getresgid() (rgid, egid, sgid int) {
164+
var r, e, s _C_int
165+
getresgid(&r, &e, &s)
166+
return int(r), int(e), int(s)
167+
}
168+
154169
//sys ioctl(fd int, req uint, arg uintptr) (err error)
155170
//sys ioctlPtr(fd int, req uint, arg unsafe.Pointer) (err error) = SYS_IOCTL
156171

@@ -338,8 +353,6 @@ func Uname(uname *Utsname) error {
338353
// getgid
339354
// getitimer
340355
// getlogin
341-
// getresgid
342-
// getresuid
343356
// getthrid
344357
// ktrace
345358
// lfs_bmapv

unix/zsyscall_openbsd_386.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_386.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4
159159
DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4
164+
DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4
169+
DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4

unix/zsyscall_openbsd_amd64.go

Lines changed: 28 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_amd64.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8
159159
DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8
164+
DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8
169+
DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8

unix/zsyscall_openbsd_arm.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_arm.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $4
159159
DATA ·libc_getcwd_trampoline_addr(SB)/4, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $4
164+
DATA ·libc_getresuid_trampoline_addr(SB)/4, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $4
169+
DATA ·libc_getresgid_trampoline_addr(SB)/4, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $4

unix/zsyscall_openbsd_arm64.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_arm64.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8
159159
DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8
164+
DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8
169+
DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8

unix/zsyscall_openbsd_mips64.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_mips64.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8
159159
DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8
164+
DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8
169+
DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8

unix/zsyscall_openbsd_ppc64.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_ppc64.s

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -189,6 +189,18 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
189189
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8
190190
DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)
191191

192+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
193+
CALL libc_getresuid(SB)
194+
RET
195+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8
196+
DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)
197+
198+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
199+
CALL libc_getresgid(SB)
200+
RET
201+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8
202+
DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)
203+
192204
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
193205
CALL libc_ioctl(SB)
194206
RET

unix/zsyscall_openbsd_riscv64.go

Lines changed: 22 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

unix/zsyscall_openbsd_riscv64.s

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,16 @@ TEXT libc_getcwd_trampoline<>(SB),NOSPLIT,$0-0
158158
GLOBL ·libc_getcwd_trampoline_addr(SB), RODATA, $8
159159
DATA ·libc_getcwd_trampoline_addr(SB)/8, $libc_getcwd_trampoline<>(SB)
160160

161+
TEXT libc_getresuid_trampoline<>(SB),NOSPLIT,$0-0
162+
JMP libc_getresuid(SB)
163+
GLOBL ·libc_getresuid_trampoline_addr(SB), RODATA, $8
164+
DATA ·libc_getresuid_trampoline_addr(SB)/8, $libc_getresuid_trampoline<>(SB)
165+
166+
TEXT libc_getresgid_trampoline<>(SB),NOSPLIT,$0-0
167+
JMP libc_getresgid(SB)
168+
GLOBL ·libc_getresgid_trampoline_addr(SB), RODATA, $8
169+
DATA ·libc_getresgid_trampoline_addr(SB)/8, $libc_getresgid_trampoline<>(SB)
170+
161171
TEXT libc_ioctl_trampoline<>(SB),NOSPLIT,$0-0
162172
JMP libc_ioctl(SB)
163173
GLOBL ·libc_ioctl_trampoline_addr(SB), RODATA, $8

0 commit comments

Comments
 (0)