1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 06:27:45 +00:00

Kernel: Use Userspace<T> for the getpeername syscall

This commit is contained in:
Brian Gianforcaro 2020-08-07 00:00:17 -07:00 committed by Andreas Kling
parent 0db669a9d2
commit dc75ea9fc2
3 changed files with 11 additions and 4 deletions

View file

@ -298,7 +298,7 @@ public:
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$getpeername(const Syscall::SC_getpeername_params*);
int sys$getpeername(Userspace<const Syscall::SC_getpeername_params*>);
int sys$sched_setparam(pid_t pid, Userspace<const struct sched_param*>);
int sys$sched_getparam(pid_t pid, Userspace<struct sched_param*>);
int sys$create_thread(void* (*)(void*), Userspace<const Syscall::SC_create_thread_params*>);
@ -422,6 +422,13 @@ public:
return validated;
}
template<typename T>
[[nodiscard]] bool validate_read_and_copy_typed(T* dest, Userspace<T*> src)
{
Userspace<const T*> const_src { src.ptr() };
return validate_read_and_copy_typed(dest, const_src);
}
template<typename T>
[[nodiscard]] bool validate_write_typed(T* value, size_t count = 1)
{