From 9eff98c6a251935c42f6b524c1688d66c101cee5 Mon Sep 17 00:00:00 2001 From: Aliaksandr Kalenik Date: Thu, 10 Apr 2025 14:56:14 +0200 Subject: [PATCH] LibIPC: Clear sent fds vector along with sent bytes in TransportSocket It was a bit confusing we had two different places where we clear/advance buffer positions after successfull send. --- Libraries/LibIPC/TransportSocket.cpp | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/Libraries/LibIPC/TransportSocket.cpp b/Libraries/LibIPC/TransportSocket.cpp index 8820a347873..88b7fdeb3d2 100644 --- a/Libraries/LibIPC/TransportSocket.cpp +++ b/Libraries/LibIPC/TransportSocket.cpp @@ -170,10 +170,6 @@ ErrorOr TransportSocket::send_message(Core::LocalSocket& socket, ReadonlyB ErrorOr maybe_nwritten = 0; if (num_fds_to_transfer > 0) { maybe_nwritten = socket.send_message(bytes_to_write, 0, unowned_fds); - if (!maybe_nwritten.is_error()) { - num_fds_to_transfer = 0; - unowned_fds.clear(); - } } else { maybe_nwritten = socket.write_some(bytes_to_write); } @@ -187,6 +183,8 @@ ErrorOr TransportSocket::send_message(Core::LocalSocket& socket, ReadonlyB } bytes_to_write = bytes_to_write.slice(maybe_nwritten.value()); + unowned_fds.clear(); + num_fds_to_transfer = 0; } return {}; }