summaryrefslogtreecommitdiff
path: root/Userland/Libraries/LibCore
diff options
context:
space:
mode:
authorDrew DeVault <sir@cmpwn.com>2022-12-13 11:32:17 +0100
committerBrian Gianforcaro <b.gianfo@gmail.com>2022-12-13 10:12:59 -0800
commitc7f8d74c1c5ab96103891d7956772cdc90b3bec3 (patch)
treec9b33d8d28774956d6635ecc1899f15ff853f2ed /Userland/Libraries/LibCore
parenta06b2774712922a2c2a149b92864689be9ed24f8 (diff)
downloadserenity-c7f8d74c1c5ab96103891d7956772cdc90b3bec3.zip
LibCore: Fix struct msghdr initialization
The previous approach could leave behind uninitialized fields on platforms which have additional fields in this structure (e.g. padding fields on musl libc).
Diffstat (limited to 'Userland/Libraries/LibCore')
-rw-r--r--Userland/Libraries/LibCore/Stream.cpp28
1 files changed, 10 insertions, 18 deletions
diff --git a/Userland/Libraries/LibCore/Stream.cpp b/Userland/Libraries/LibCore/Stream.cpp
index bae56c00c5..9b00aaed8f 100644
--- a/Userland/Libraries/LibCore/Stream.cpp
+++ b/Userland/Libraries/LibCore/Stream.cpp
@@ -605,15 +605,11 @@ ErrorOr<int> LocalSocket::receive_fd(int flags)
.iov_base = &c,
.iov_len = 1,
};
- struct msghdr msg {
- .msg_name = NULL,
- .msg_namelen = 0,
- .msg_iov = &iov,
- .msg_iovlen = 1,
- .msg_control = cmsgu.control,
- .msg_controllen = sizeof(cmsgu.control),
- .msg_flags = 0,
- };
+ struct msghdr msg = {};
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+ msg.msg_control = cmsgu.control;
+ msg.msg_controllen = sizeof(cmsgu.control);
TRY(Core::System::recvmsg(m_helper.fd(), &msg, 0));
struct cmsghdr* cmsg = CMSG_FIRSTHDR(&msg);
@@ -652,15 +648,11 @@ ErrorOr<void> LocalSocket::send_fd(int fd)
char control[CMSG_SPACE(sizeof(int))];
} cmsgu {};
- struct msghdr msg {
- .msg_name = NULL,
- .msg_namelen = 0,
- .msg_iov = &iov,
- .msg_iovlen = 1,
- .msg_control = cmsgu.control,
- .msg_controllen = sizeof(cmsgu.control),
- .msg_flags = 0,
- };
+ struct msghdr msg = {};
+ msg.msg_iov = &iov;
+ msg.msg_iovlen = 1;
+ msg.msg_control = cmsgu.control;
+ msg.msg_controllen = sizeof(cmsgu.control);
struct cmsghdr* cmsg = CMSG_FIRSTHDR(&msg);
cmsg->cmsg_len = CMSG_LEN(sizeof(int));