1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 16:47:36 +00:00

Kernel: Use Userspace<T> in sys$write()

This commit is contained in:
Andreas Kling 2021-03-01 14:35:06 +01:00
parent 6a6eb8844a
commit 122c7b6cbb
2 changed files with 3 additions and 3 deletions

View file

@ -242,7 +242,7 @@ public:
KResultOr<int> sys$close(int fd); KResultOr<int> sys$close(int fd);
KResultOr<ssize_t> sys$read(int fd, Userspace<u8*>, ssize_t); KResultOr<ssize_t> sys$read(int fd, Userspace<u8*>, ssize_t);
KResultOr<ssize_t> sys$readv(int fd, Userspace<const struct iovec*> iov, int iov_count); KResultOr<ssize_t> sys$readv(int fd, Userspace<const struct iovec*> iov, int iov_count);
KResultOr<ssize_t> sys$write(int fd, const u8*, ssize_t); KResultOr<ssize_t> sys$write(int fd, Userspace<const u8*>, ssize_t);
KResultOr<ssize_t> sys$writev(int fd, Userspace<const struct iovec*> iov, int iov_count); KResultOr<ssize_t> sys$writev(int fd, Userspace<const struct iovec*> iov, int iov_count);
KResultOr<int> sys$fstat(int fd, Userspace<stat*>); KResultOr<int> sys$fstat(int fd, Userspace<stat*>);
KResultOr<int> sys$stat(Userspace<const Syscall::SC_stat_params*>); KResultOr<int> sys$stat(Userspace<const Syscall::SC_stat_params*>);

View file

@ -114,7 +114,7 @@ KResultOr<ssize_t> Process::do_write(FileDescription& description, const UserOrK
return total_nwritten; return total_nwritten;
} }
KResultOr<ssize_t> Process::sys$write(int fd, const u8* data, ssize_t size) KResultOr<ssize_t> Process::sys$write(int fd, Userspace<const u8*> data, ssize_t size)
{ {
REQUIRE_PROMISE(stdio); REQUIRE_PROMISE(stdio);
if (size < 0) if (size < 0)
@ -129,7 +129,7 @@ KResultOr<ssize_t> Process::sys$write(int fd, const u8* data, ssize_t size)
if (!description->is_writable()) if (!description->is_writable())
return EBADF; return EBADF;
auto buffer = UserOrKernelBuffer::for_user_buffer(const_cast<u8*>(data), (size_t)size); auto buffer = UserOrKernelBuffer::for_user_buffer(data, static_cast<size_t>(size));
if (!buffer.has_value()) if (!buffer.has_value())
return EFAULT; return EFAULT;
return do_write(*description, buffer.value(), size); return do_write(*description, buffer.value(), size);