From 431145148ef2a9141cf176276c89774e0f4eea40 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Sun, 9 Aug 2020 14:57:50 -0700 Subject: [PATCH] Kernel: Use Userspace for the fstat syscall --- Kernel/Process.h | 2 +- Kernel/Syscalls/stat.cpp | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Kernel/Process.h b/Kernel/Process.h index 6e17e72e2b..1583133f37 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -224,7 +224,7 @@ public: ssize_t sys$read(int fd, Userspace, ssize_t); ssize_t sys$write(int fd, const u8*, ssize_t); ssize_t sys$writev(int fd, const struct iovec* iov, int iov_count); - int sys$fstat(int fd, stat*); + int sys$fstat(int fd, Userspace); int sys$stat(Userspace); int sys$lseek(int fd, off_t, int whence); int sys$kill(pid_t pid_or_pgid, int sig); diff --git a/Kernel/Syscalls/stat.cpp b/Kernel/Syscalls/stat.cpp index 33e90443aa..2ea70a1ab5 100644 --- a/Kernel/Syscalls/stat.cpp +++ b/Kernel/Syscalls/stat.cpp @@ -31,7 +31,7 @@ namespace Kernel { -int Process::sys$fstat(int fd, stat* user_statbuf) +int Process::sys$fstat(int fd, Userspace user_statbuf) { REQUIRE_PROMISE(stdio); if (!validate_write_typed(user_statbuf)) @@ -39,8 +39,7 @@ int Process::sys$fstat(int fd, stat* user_statbuf) auto description = file_description(fd); if (!description) return -EBADF; - stat buffer; - memset(&buffer, 0, sizeof(buffer)); + stat buffer = {}; int rc = description->fstat(buffer); copy_to_user(user_statbuf, &buffer); return rc;