From cbe85a187829524c8852108843a488b94630cb33 Mon Sep 17 00:00:00 2001 From: Marsman1996 Date: Mon, 23 Sep 2024 10:53:07 +0800 Subject: [PATCH] Add check for negative `timeval_t.sec` in `do_futimesat` --- kernel/src/syscall/utimens.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/kernel/src/syscall/utimens.rs b/kernel/src/syscall/utimens.rs index 5540a4d73..07b2789eb 100644 --- a/kernel/src/syscall/utimens.rs +++ b/kernel/src/syscall/utimens.rs @@ -189,7 +189,13 @@ fn do_futimesat( ) -> Result { let times = if timeval_ptr != 0 { let (autime, mutime) = read_time_from_user::(timeval_ptr, ctx)?; - if autime.usec >= 1000000 || autime.usec < 0 || mutime.usec >= 1000000 || mutime.usec < 0 { + if autime.usec >= 1000000 + || autime.usec < 0 + || autime.sec < 0 + || mutime.usec >= 1000000 + || mutime.usec < 0 + || mutime.sec < 0 + { return_errno_with_message!(Errno::EINVAL, "Invalid time"); } let (autime, mutime) = (timespec_t::from(autime), timespec_t::from(mutime));