From 8fa46bcb7dfea4a758e534baebd5c7399871f343 Mon Sep 17 00:00:00 2001 From: Brian Gianforcaro Date: Fri, 7 Aug 2020 00:03:37 -0700 Subject: [PATCH] Kernel: Use Userspace for the getsockname syscall --- Kernel/API/Syscall.h | 4 ++-- Kernel/Process.h | 2 +- Kernel/Syscalls/socket.cpp | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Kernel/API/Syscall.h b/Kernel/API/Syscall.h index 1a24be437c..7e2f031f52 100644 --- a/Kernel/API/Syscall.h +++ b/Kernel/API/Syscall.h @@ -320,8 +320,8 @@ struct SC_setsockopt_params { struct SC_getsockname_params { int sockfd; - sockaddr* addr; - socklen_t* addrlen; + Userspace addr; + Userspace addrlen; }; struct SC_getpeername_params { diff --git a/Kernel/Process.h b/Kernel/Process.h index 572b6169dc..9ad270c60d 100644 --- a/Kernel/Process.h +++ b/Kernel/Process.h @@ -297,7 +297,7 @@ public: ssize_t sys$recvfrom(const Syscall::SC_recvfrom_params*); int sys$getsockopt(const Syscall::SC_getsockopt_params*); int sys$setsockopt(const Syscall::SC_setsockopt_params*); - int sys$getsockname(const Syscall::SC_getsockname_params*); + int sys$getsockname(Userspace); int sys$getpeername(Userspace); int sys$sched_setparam(pid_t pid, Userspace); int sys$sched_getparam(pid_t pid, Userspace); diff --git a/Kernel/Syscalls/socket.cpp b/Kernel/Syscalls/socket.cpp index 1ed6730d5b..89535c0798 100644 --- a/Kernel/Syscalls/socket.cpp +++ b/Kernel/Syscalls/socket.cpp @@ -300,7 +300,7 @@ int Process::get_sock_or_peer_name(const Params& params) return 0; } -int Process::sys$getsockname(const Syscall::SC_getsockname_params* user_params) +int Process::sys$getsockname(Userspace user_params) { Syscall::SC_getsockname_params params; if (!validate_read_and_copy_typed(¶ms, user_params))