diff options
author | Lennart Poettering <lennart@poettering.net> | 2023-04-13 10:49:15 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2023-04-13 10:49:23 +0200 |
commit | ca918f63b7a98442d2925c0a668c911d8140215b (patch) | |
tree | f45c36386f7a8d8c1ca733c65778f96670c74be3 /src/libsystemd | |
parent | b1d02191366794dedc345a4c6dc9ebb2adf53bf6 (diff) | |
download | systemd-ca918f63b7a98442d2925c0a668c911d8140215b.tar.gz |
udev,sd-device: use CMSG_FIND_DATA() more
Diffstat (limited to 'src/libsystemd')
-rw-r--r-- | src/libsystemd/sd-device/device-monitor.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/src/libsystemd/sd-device/device-monitor.c b/src/libsystemd/sd-device/device-monitor.c index af093385da..a23b5e7847 100644 --- a/src/libsystemd/sd-device/device-monitor.c +++ b/src/libsystemd/sd-device/device-monitor.c @@ -503,7 +503,6 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) { .msg_name = &snl, .msg_namelen = sizeof(snl), }; - struct cmsghdr *cmsg; struct ucred *cred; size_t offset; ssize_t n; @@ -559,12 +558,11 @@ int device_monitor_receive_device(sd_device_monitor *m, sd_device **ret) { snl.nl.nl_pid); } - cmsg = CMSG_FIRSTHDR(&smsg); - if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) + cred = CMSG_FIND_DATA(&smsg, SOL_SOCKET, SCM_CREDENTIALS, struct ucred); + if (!cred) return log_monitor_errno(m, SYNTHETIC_ERRNO(EAGAIN), "No sender credentials received, ignoring message."); - cred = (struct ucred*) CMSG_DATA(cmsg); if (!check_sender_uid(m, cred->uid)) return log_monitor_errno(m, SYNTHETIC_ERRNO(EAGAIN), "Sender uid="UID_FMT", message ignored.", cred->uid); |