Skip to content

Commit 7a3df36

Browse files
authored
Merge pull request #1920 from mrmiywj/add_support_for_getresuid
add support for getresuid
2 parents ebf6b51 + 73d35bc commit 7a3df36

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
@@ -1457,6 +1457,25 @@ fn os_sync(_vm: &VirtualMachine) -> PyResult<()> {
14571457
Ok(())
14581458
}
14591459

1460+
// cfg from nix
1461+
#[cfg(any(
1462+
target_os = "android",
1463+
target_os = "freebsd",
1464+
target_os = "linux",
1465+
target_os = "openbsd"
1466+
))]
1467+
fn os_getresuid(vm: &VirtualMachine) -> PyResult<(u32, u32, u32)> {
1468+
let mut ruid = 0;
1469+
let mut euid = 0;
1470+
let mut suid = 0;
1471+
let ret = unsafe { libc::getresuid(&mut ruid, &mut euid, &mut suid) };
1472+
if ret == 0 {
1473+
Ok((ruid, euid, suid))
1474+
} else {
1475+
Err(errno_err(vm))
1476+
}
1477+
}
1478+
14601479
pub fn make_module(vm: &VirtualMachine) -> PyObjectRef {
14611480
let ctx = &vm.ctx;
14621481

@@ -1688,6 +1707,7 @@ fn extend_module_platform_specific(vm: &VirtualMachine, module: &PyObjectRef) {
16881707
))]
16891708
extend_module!(vm, module, {
16901709
"setresuid" => ctx.new_function(os_setresuid),
1710+
"getresuid" => ctx.new_function(os_getresuid),
16911711
});
16921712

16931713
// cfg taken from nix

0 commit comments

Comments
 (0)