From 8cfe85226f0dffeecf191c19d5a0dcd1ece5439d Mon Sep 17 00:00:00 2001 From: Wildan M Date: Wed, 10 Jun 2026 05:45:21 +0700 Subject: [PATCH] Do not call getrlimit on getdtablesize in Redox --- src/header/unistd/mod.rs | 28 ++++++++++++++++------------ 1 file changed, 16 insertions(+), 12 deletions(-) diff --git a/src/header/unistd/mod.rs b/src/header/unistd/mod.rs index fc5fc9f2cb..14e5a18dbe 100644 --- a/src/header/unistd/mod.rs +++ b/src/header/unistd/mod.rs @@ -517,19 +517,23 @@ pub unsafe extern "C" fn getcwd(mut buf: *mut c_char, mut size: size_t) -> *mut #[deprecated] #[unsafe(no_mangle)] pub extern "C" fn getdtablesize() -> c_int { - let mut lim = mem::MaybeUninit::::uninit(); - let r = unsafe { - sys_resource::getrlimit( - sys_resource::RLIMIT_NOFILE as c_int, - lim.as_mut_ptr().cast::(), - ) - }; - if r == 0 { - let cur = unsafe { lim.assume_init() }.rlim_cur; - match cur { - c if c < i32::MAX as u64 => c as i32, - _ => i32::MAX, + // TODO: Have getrlimit working in Redox + #[cfg(not(target_os = "redox"))] + { + let mut lim = mem::MaybeUninit::::uninit(); + let r = unsafe { + sys_resource::getrlimit( + sys_resource::RLIMIT_NOFILE as c_int, + lim.as_mut_ptr().cast::(), + ) }; + if r == 0 { + let cur = unsafe { lim.assume_init() }.rlim_cur; + return match cur { + c if c < i32::MAX as u64 => c as i32, + _ => i32::MAX, + }; + } } -1 }