From 122c7b6cbbb564a2e06b88a67290aa4fdb6b9749 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Mon, 1 Mar 2021 14:35:06 +0100 Subject: [PATCH] Kernel: Use Userspace in sys$write() --- Kernel/Process.h | 2 +- Kernel/Syscalls/write.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Kernel/Process.h b/Kernel/Process.h index d663448dd3..9727fba06e 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -242,7 +242,7 @@ public: KResultOr sys$close(int fd); KResultOr sys$read(int fd, Userspace, ssize_t); KResultOr sys$readv(int fd, Userspace iov, int iov_count); - KResultOr sys$write(int fd, const u8*, ssize_t); + KResultOr sys$write(int fd, Userspace, ssize_t); KResultOr sys$writev(int fd, Userspace iov, int iov_count); KResultOr sys$fstat(int fd, Userspace); KResultOr sys$stat(Userspace); diff --git a/Kernel/Syscalls/write.cpp b/Kernel/Syscalls/write.cpp index 82d952e1e0..b5e070522b 100644 --- a/Kernel/Syscalls/write.cpp +++ b/Kernel/Syscalls/write.cpp @@ -114,7 +114,7 @@ KResultOr Process::do_write(FileDescription& description, const UserOrK return total_nwritten; } -KResultOr Process::sys$write(int fd, const u8* data, ssize_t size) +KResultOr Process::sys$write(int fd, Userspace data, ssize_t size) { REQUIRE_PROMISE(stdio); if (size < 0) @@ -129,7 +129,7 @@ KResultOr Process::sys$write(int fd, const u8* data, ssize_t size) if (!description->is_writable()) return EBADF; - auto buffer = UserOrKernelBuffer::for_user_buffer(const_cast(data), (size_t)size); + auto buffer = UserOrKernelBuffer::for_user_buffer(data, static_cast(size)); if (!buffer.has_value()) return EFAULT; return do_write(*description, buffer.value(), size);