From 4f575e202843fbd3afcbbb6d4ea8f6421fd4031b Mon Sep 17 00:00:00 2001 From: YanWQ-monad Date: Sun, 21 Apr 2024 02:00:52 +0800 Subject: [PATCH] Fix `writev` fault when `io_vec.len` is 0 --- kernel/aster-nix/src/syscall/writev.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/kernel/aster-nix/src/syscall/writev.rs b/kernel/aster-nix/src/syscall/writev.rs index de6a5335..e2e71cd3 100644 --- a/kernel/aster-nix/src/syscall/writev.rs +++ b/kernel/aster-nix/src/syscall/writev.rs @@ -41,7 +41,7 @@ fn do_sys_writev(fd: FileDescripter, io_vec_ptr: Vaddr, io_vec_count: usize) -> let mut total_len = 0; for i in 0..io_vec_count { let io_vec = read_val_from_user::(io_vec_ptr + i * core::mem::size_of::())?; - if io_vec.base == 0 { + if io_vec.base == 0 || io_vec.len == 0 { continue; } let buffer = {