dbus-broker/backport-dbus-socket-set-msgheader-controllen-size-using-the-.patch
hongjinghao bc85f6a4e5 sync patches from dbus-broker community
(cherry picked from commit 58716c55dbf25e6fa009b35703a1792e10895951)
2023-08-09 11:24:07 +08:00

33 lines
1.2 KiB
Diff

From 743db9327bf8223dba59b1b666ba547a14e18afb Mon Sep 17 00:00:00 2001
From: Luca Boccassi <bluca@debian.org>
Date: Tue, 4 Apr 2023 01:58:02 +0100
Subject: [PATCH] dbus/socket: set msgheader controllen size using the right
macro
Use CMSG_SPACE to set the size of msg_controllen when sending FDs.
CMSG_LEN was used implicicly before, which for 1 FD is 20 bytes,
while CMSG_SPACE is 24 bytes.
Signed-off-by: Luca Boccassi <bluca@debian.org>
Signed-off-by: David Rheinsberg <david@readahead.eu>
---
src/dbus/socket.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/dbus/socket.c b/src/dbus/socket.c
index d429588..85eedda 100644
--- a/src/dbus/socket.c
+++ b/src/dbus/socket.c
@@ -806,7 +806,7 @@ static int socket_dispatch_write(Socket *socket) {
buffer->message->fds &&
socket_buffer_is_uncomsumed(buffer)) {
msg->msg_control = buffer->message->fds->cmsg;
- msg->msg_controllen = buffer->message->fds->cmsg->cmsg_len;
+ msg->msg_controllen = fdlist_size(buffer->message->fds);
} else {
msg->msg_control = NULL;
msg->msg_controllen = 0;
--
2.33.0