diff options
author | Brian Gianforcaro <b.gianfo@gmail.com> | 2020-08-18 00:25:23 -0700 |
---|---|---|
committer | Andreas Kling <kling@serenityos.org> | 2020-08-19 21:05:28 +0200 |
commit | 8e97de2df9fa657832102cc637e1db4f038bb6e5 (patch) | |
tree | 9bb07d92bd6e9e4db73b45b36bb169361a2b1198 /Kernel/Net/LocalSocket.cpp | |
parent | 9f9b05ba0f8d907ab3190b127ef4500c1ad08156 (diff) | |
download | serenity-8e97de2df9fa657832102cc637e1db4f038bb6e5.zip |
Kernel: Use Userspace<T> for the recvfrom syscall, and Socket implementation
This fixes a bunch of unchecked kernel reads and writes, seems like they
would might exploitable :). Write of sockaddr_in size to any address you
please...
Diffstat (limited to 'Kernel/Net/LocalSocket.cpp')
-rw-r--r-- | Kernel/Net/LocalSocket.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/Kernel/Net/LocalSocket.cpp b/Kernel/Net/LocalSocket.cpp index 81178f9f51..92f333ad23 100644 --- a/Kernel/Net/LocalSocket.cpp +++ b/Kernel/Net/LocalSocket.cpp @@ -290,7 +290,7 @@ DoubleBuffer& LocalSocket::send_buffer_for(FileDescription& description) ASSERT_NOT_REACHED(); } -KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, void* buffer, size_t buffer_size, int, sockaddr*, socklen_t*) +KResultOr<size_t> LocalSocket::recvfrom(FileDescription& description, void* buffer, size_t buffer_size, int, Userspace<sockaddr*>, Userspace<socklen_t*>) { auto& buffer_for_me = receive_buffer_for(description); if (!description.is_blocking()) { |