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

Kernel+Userland: Give sys$recvfd() an options argument for O_CLOEXEC

@bugaevc pointed out that we shouldn't be setting this flag in
userspace, and he's right of course.
This commit is contained in:
Andreas Kling 2021-02-14 10:38:22 +01:00
parent 09b1b09c19
commit 781d29a337
7 changed files with 15 additions and 15 deletions

View file

@ -52,7 +52,7 @@ int Process::sys$sendfd(int sockfd, int fd)
return local_socket.sendfd(*socket_description, *passing_descriptor);
}
int Process::sys$recvfd(int sockfd)
int Process::sys$recvfd(int sockfd, int options)
{
REQUIRE_PROMISE(recvfd);
auto socket_description = file_description(sockfd);
@ -74,7 +74,11 @@ int Process::sys$recvfd(int sockfd)
if (received_descriptor_or_error.is_error())
return received_descriptor_or_error.error();
m_fds[new_fd].set(*received_descriptor_or_error.value(), 0);
u32 fd_flags = 0;
if (options & O_CLOEXEC)
fd_flags |= FD_CLOEXEC;
m_fds[new_fd].set(*received_descriptor_or_error.value(), fd_flags);
return new_fd;
}