From 95c8e6ddb5455bfd08cf2d90c12e5925656320fe Mon Sep 17 00:00:00 2001 From: sourceturner <126549-sourceturner@users.noreply.gitlab.redox-os.org> Date: Sun, 18 Jan 2026 21:17:21 +0100 Subject: [PATCH] Use unsafe blocks in sys/stat.h implementation --- src/header/sys_stat/mod.rs | 36 +++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 17 deletions(-) diff --git a/src/header/sys_stat/mod.rs b/src/header/sys_stat/mod.rs index b71a5f4d39..bbccc3613b 100644 --- a/src/header/sys_stat/mod.rs +++ b/src/header/sys_stat/mod.rs @@ -83,7 +83,7 @@ pub struct stat { /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn chmod(path: *const c_char, mode: mode_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::chmod(path, mode).map(|()| 0).or_minus_one_errno() } @@ -101,7 +101,7 @@ pub unsafe extern "C" fn fchmodat( mode: mode_t, flags: c_int, ) -> c_int { - let path = CStr::from_nullable_ptr(path); + let path = unsafe { CStr::from_nullable_ptr(path) }; Sys::fchmodat(dirfd, path, mode, flags) .map(|()| 0) .or_minus_one_errno() @@ -110,7 +110,7 @@ pub unsafe extern "C" fn fchmodat( /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn fstat(fildes: c_int, buf: *mut stat) -> c_int { - let buf = Out::nonnull(buf); + let buf = unsafe { Out::nonnull(buf) }; Sys::fstat(fildes, buf).map(|()| 0).or_minus_one_errno() } @@ -122,8 +122,8 @@ pub unsafe extern "C" fn fstatat( buf: *mut stat, flags: c_int, ) -> c_int { - let path = CStr::from_nullable_ptr(path); - let buf = Out::nonnull(buf); + let path = unsafe { CStr::from_nullable_ptr(path) }; + let buf = unsafe { Out::nonnull(buf) }; Sys::fstatat(fildes, path, buf, flags) .map(|()| 0) .or_minus_one_errno() @@ -131,20 +131,22 @@ pub unsafe extern "C" fn fstatat( #[unsafe(no_mangle)] pub unsafe extern "C" fn __fxstat(_ver: c_int, fildes: c_int, buf: *mut stat) -> c_int { - fstat(fildes, buf) + unsafe { fstat(fildes, buf) } } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn futimens(fd: c_int, times: *const timespec) -> c_int { - Sys::futimens(fd, times).map(|()| 0).or_minus_one_errno() + unsafe { Sys::futimens(fd, times) } + .map(|()| 0) + .or_minus_one_errno() } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn lstat(path: *const c_char, buf: *mut stat) -> c_int { - let path = CStr::from_ptr(path); - let buf = Out::nonnull(buf); + let path = unsafe { CStr::from_ptr(path) }; + let buf = unsafe { Out::nonnull(buf) }; // TODO: Rustify let fd = Sys::open(path, O_PATH | O_NOFOLLOW, 0).or_minus_one_errno(); @@ -163,7 +165,7 @@ pub unsafe extern "C" fn lstat(path: *const c_char, buf: *mut stat) -> c_int { /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn mkdirat(dirfd: c_int, path: *const c_char, mode: mode_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mkdirat(dirfd, path, mode) .map(|()| 0) .or_minus_one_errno() @@ -172,14 +174,14 @@ pub unsafe extern "C" fn mkdirat(dirfd: c_int, path: *const c_char, mode: mode_t /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn mkdir(path: *const c_char, mode: mode_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mkdir(path, mode).map(|()| 0).or_minus_one_errno() } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn mkfifoat(dirfd: c_int, path: *const c_char, mode: mode_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mkfifoat(dirfd, path, mode) .map(|()| 0) .or_minus_one_errno() @@ -188,14 +190,14 @@ pub unsafe extern "C" fn mkfifoat(dirfd: c_int, path: *const c_char, mode: mode_ /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn mkfifo(path: *const c_char, mode: mode_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mkfifo(path, mode).map(|()| 0).or_minus_one_errno() } /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn mknod(path: *const c_char, mode: mode_t, dev: dev_t) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mknod(path, mode, dev).map(|()| 0).or_minus_one_errno() } @@ -207,7 +209,7 @@ pub unsafe extern "C" fn mknodat( mode: mode_t, dev: dev_t, ) -> c_int { - let path = CStr::from_ptr(path); + let path = unsafe { CStr::from_ptr(path) }; Sys::mknodat(dirfd, path, mode, dev) .map(|()| 0) .or_minus_one_errno() @@ -216,8 +218,8 @@ pub unsafe extern "C" fn mknodat( /// See . #[unsafe(no_mangle)] pub unsafe extern "C" fn stat(file: *const c_char, buf: *mut stat) -> c_int { - let file = CStr::from_ptr(file); - let buf = Out::nonnull(buf); + let file = unsafe { CStr::from_ptr(file) }; + let buf = unsafe { Out::nonnull(buf) }; // TODO: Rustify let fd = Sys::open(file, O_PATH, 0).or_minus_one_errno();