From 187fe6cdd9b00883b55a0334a4f7000af270a597 Mon Sep 17 00:00:00 2001 From: Marsman1996 Date: Fri, 23 Jan 2026 20:32:58 +0800 Subject: [PATCH] fix: validate position in sys_pread64 and sys_pwrite64 --- api/ruxos_posix_api/src/imp/fs.rs | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/api/ruxos_posix_api/src/imp/fs.rs b/api/ruxos_posix_api/src/imp/fs.rs index e97f16aa9..f755f9b31 100644 --- a/api/ruxos_posix_api/src/imp/fs.rs +++ b/api/ruxos_posix_api/src/imp/fs.rs @@ -72,6 +72,9 @@ pub fn sys_pread64( ) -> ctypes::ssize_t { syscall_body!(sys_pread64, { debug!("sys_pread64 <= {fd} {count} {pos}"); + if pos < 0 { + return Err(LinuxError::EINVAL); + } if buf.is_null() { return Err(LinuxError::EFAULT); } @@ -93,6 +96,9 @@ pub fn sys_pwrite64( ) -> ctypes::ssize_t { syscall_body!(sys_pwrite64, { debug!("sys_pwrite64 <= {fd} {count} {pos}"); + if pos < 0 { + return Err(LinuxError::EINVAL); + } if buf.is_null() { return Err(LinuxError::EFAULT); }