mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-09-30 00:31:14 +00:00
Kernel: Use Userspace<T> in sys$write()
This commit is contained in:
parent
6a6eb8844a
commit
122c7b6cbb
Notes:
sideshowbarker
2024-07-18 21:48:54 +09:00
Author: https://github.com/awesomekling Commit: https://github.com/SerenityOS/serenity/commit/122c7b6cbbb
|
@ -242,7 +242,7 @@ public:
|
|||
KResultOr<int> sys$close(int fd);
|
||||
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$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<int> sys$fstat(int fd, Userspace<stat*>);
|
||||
KResultOr<int> sys$stat(Userspace<const Syscall::SC_stat_params*>);
|
||||
|
|
|
@ -114,7 +114,7 @@ KResultOr<ssize_t> Process::do_write(FileDescription& description, const UserOrK
|
|||
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);
|
||||
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())
|
||||
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())
|
||||
return EFAULT;
|
||||
return do_write(*description, buffer.value(), size);
|
||||
|
|
Loading…
Reference in a new issue