diff options
Diffstat (limited to 'Kernel/Syscalls/sendfd.cpp')
-rw-r--r-- | Kernel/Syscalls/sendfd.cpp | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/Kernel/Syscalls/sendfd.cpp b/Kernel/Syscalls/sendfd.cpp index 4c1dd274ee..f0ac59ea6b 100644 --- a/Kernel/Syscalls/sendfd.cpp +++ b/Kernel/Syscalls/sendfd.cpp @@ -14,7 +14,7 @@ ErrorOr<FlatPtr> Process::sys$sendfd(int sockfd, int fd) { VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) TRY(require_promise(Pledge::sendfd)); - auto socket_description = TRY(fds().open_file_description(sockfd)); + auto socket_description = TRY(open_file_description(sockfd)); if (!socket_description->is_socket()) return ENOTSOCK; auto& socket = *socket_description->socket(); @@ -23,7 +23,7 @@ ErrorOr<FlatPtr> Process::sys$sendfd(int sockfd, int fd) if (!socket.is_connected()) return ENOTCONN; - auto passing_description = TRY(fds().open_file_description(fd)); + auto passing_description = TRY(open_file_description(fd)); auto& local_socket = static_cast<LocalSocket&>(socket); TRY(local_socket.sendfd(*socket_description, move(passing_description))); return 0; @@ -33,14 +33,14 @@ ErrorOr<FlatPtr> Process::sys$recvfd(int sockfd, int options) { VERIFY_PROCESS_BIG_LOCK_ACQUIRED(this) TRY(require_promise(Pledge::recvfd)); - auto socket_description = TRY(fds().open_file_description(sockfd)); + auto socket_description = TRY(open_file_description(sockfd)); if (!socket_description->is_socket()) return ENOTSOCK; auto& socket = *socket_description->socket(); if (!socket.is_local()) return EAFNOSUPPORT; - auto fd_allocation = TRY(m_fds.allocate()); + auto fd_allocation = TRY(m_fds.with([](auto& fds) { return fds.allocate(); })); auto& local_socket = static_cast<LocalSocket&>(socket); auto received_description = TRY(local_socket.recvfd(*socket_description)); @@ -49,7 +49,7 @@ ErrorOr<FlatPtr> Process::sys$recvfd(int sockfd, int options) if (options & O_CLOEXEC) fd_flags |= FD_CLOEXEC; - m_fds[fd_allocation.fd].set(move(received_description), fd_flags); + m_fds.with([&](auto& fds) { fds[fd_allocation.fd].set(move(received_description), fd_flags); }); return fd_allocation.fd; } |