Skip to content

Commit 9352695

Browse files
committed
add_getresgid_support
1 parent 7a3df36 commit 9352695

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

vm/src/stdlib/os.rs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1476,6 +1476,25 @@ fn os_getresuid(vm: &VirtualMachine) -> PyResult<(u32, u32, u32)> {
14761476
}
14771477
}
14781478

1479+
// cfg from nix
1480+
#[cfg(any(
1481+
target_os = "android",
1482+
target_os = "freebsd",
1483+
target_os = "linux",
1484+
target_os = "openbsd"
1485+
))]
1486+
fn os_getresgid(vm: &VirtualMachine) -> PyResult<(u32, u32, u32)> {
1487+
let mut rgid = 0;
1488+
let mut egid = 0;
1489+
let mut sgid = 0;
1490+
let ret = unsafe { libc::getresgid(&mut rgid, &mut egid, &mut sgid) };
1491+
if ret == 0 {
1492+
Ok((rgid, egid, sgid))
1493+
} else {
1494+
Err(errno_err(vm))
1495+
}
1496+
}
1497+
14791498
pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
14801499
let ctx = &vm.ctx;
14811500

@@ -1708,6 +1727,7 @@ fn extend_module_platform_specific(vm: &VirtualMachine, module: &PyObjectRef) {
17081727
extend_module!(vm, module, {
17091728
"setresuid" => ctx.new_function(os_setresuid),
17101729
"getresuid" => ctx.new_function(os_getresuid),
1730+
"getresgid" => ctx.new_function(os_getresgid),
17111731
});
17121732

17131733
// cfg taken from nix

0 commit comments

Comments
 (0)