summaryrefslogtreecommitdiff
path: root/Kernel/Net/IPv4Socket.cpp
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2022-08-21 16:33:09 +0200
committerAndreas Kling <kling@serenityos.org>2022-08-21 16:33:09 +0200
commit51318d51a4836753ea61e595c8e845858569ddc4 (patch)
treefc46e63fa084613e9bf1386e0950a4ab45578a45 /Kernel/Net/IPv4Socket.cpp
parent8d0bd3f225786c0ee36e0ec4297b8115290b709a (diff)
downloadserenity-51318d51a4836753ea61e595c8e845858569ddc4.zip
Kernel: Make Socket::bind() take credentials as input
Diffstat (limited to 'Kernel/Net/IPv4Socket.cpp')
-rw-r--r--Kernel/Net/IPv4Socket.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/Kernel/Net/IPv4Socket.cpp b/Kernel/Net/IPv4Socket.cpp
index 7f21ea5159..439cc89e37 100644
--- a/Kernel/Net/IPv4Socket.cpp
+++ b/Kernel/Net/IPv4Socket.cpp
@@ -94,7 +94,7 @@ void IPv4Socket::get_peer_address(sockaddr* address, socklen_t* address_size)
*address_size = sizeof(sockaddr_in);
}
-ErrorOr<void> IPv4Socket::bind(Userspace<sockaddr const*> user_address, socklen_t address_size)
+ErrorOr<void> IPv4Socket::bind(Credentials const& credentials, Userspace<sockaddr const*> user_address, socklen_t address_size)
{
VERIFY(setup_state() == SetupState::Unstarted);
if (address_size != sizeof(sockaddr_in))
@@ -107,9 +107,9 @@ ErrorOr<void> IPv4Socket::bind(Userspace<sockaddr const*> user_address, socklen_
return set_so_error(EINVAL);
auto requested_local_port = ntohs(address.sin_port);
- if (!Process::current().is_superuser()) {
+ if (!credentials.is_superuser()) {
if (requested_local_port > 0 && requested_local_port < 1024) {
- dbgln("UID {} attempted to bind {} to port {}", Process::current().uid(), class_name(), requested_local_port);
+ dbgln("UID {} attempted to bind {} to port {}", credentials.uid(), class_name(), requested_local_port);
return set_so_error(EACCES);
}
}