diff --git a/src/ld_so/linker.rs b/src/ld_so/linker.rs index 149f26543f816fe887439b2b5c30060ee320c5fa..b70a46faed539f7be4f27b02933bc44960e6a547 100644 --- a/src/ld_so/linker.rs +++ b/src/ld_so/linker.rs @@ -26,7 +26,6 @@ use crate::{ }; use super::{ - access, debug::{RTLDDebug, RTLDState, _dl_debug_state, _r_debug}, tcb::{Master, Tcb}, PAGE_SIZE, @@ -164,20 +163,7 @@ impl Linker { if self.verbose { println!("check {}", path); } - let access = unsafe { - let path_c = CString::new(path.as_bytes()).map_err(|err| { - Error::Malformed(format!("invalid path '{}': {}", path, err)) - })?; - - // TODO: Use R_OK | X_OK - // We cannot use unix stdlib because errno is thead local variable - // and fs:[0] is not set yet. - access(path_c.as_ptr(), unistd::F_OK) == 0 - }; - - if access { - return Ok(Some(self.load_recursive(name, &path)?)); - } + return Ok(Some(self.load_recursive(name, &path)?)); } Err(Error::Malformed(format!("failed to locate '{}'", name))) diff --git a/src/ld_so/mod.rs b/src/ld_so/mod.rs index b39a5e7e269e2c8ffb937ffb113046b591d881e6..fbb62f290aa68270815e2552b58770c4dfe442cf 100644 --- a/src/ld_so/mod.rs +++ b/src/ld_so/mod.rs @@ -79,12 +79,6 @@ pub fn static_init(sp: &'static Stack) { } } -// Wrapper over the systemcall, Do not use outside of ld_so -pub unsafe fn access(path: *const c_char, mode: c_int) -> c_int { - let path = CStr::from_ptr(path); - syscall!(ACCESS, (path).as_ptr(), mode) as c_int -} - #[cfg(target_os = "linux")] pub unsafe fn init(sp: &'static Stack) { let mut tp = 0usize;