mirror of
https://github.com/systemd/systemd
synced 2024-07-22 10:44:58 +00:00
udev,sd-device: use CMSG_FIND_DATA() more
This commit is contained in:
parent
b1d0219136
commit
ca918f63b7
|
@ -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);
|
||||
|
|
|
@ -161,7 +161,6 @@ static int udev_ctrl_connection_event_handler(sd_event_source *s, int fd, uint32
|
|||
.msg_control = &control,
|
||||
.msg_controllen = sizeof(control),
|
||||
};
|
||||
struct cmsghdr *cmsg;
|
||||
struct ucred *cred;
|
||||
ssize_t size;
|
||||
|
||||
|
@ -185,15 +184,12 @@ static int udev_ctrl_connection_event_handler(sd_event_source *s, int fd, uint32
|
|||
|
||||
cmsg_close_all(&smsg);
|
||||
|
||||
cmsg = CMSG_FIRSTHDR(&smsg);
|
||||
|
||||
if (!cmsg || cmsg->cmsg_type != SCM_CREDENTIALS) {
|
||||
cred = CMSG_FIND_DATA(&smsg, SOL_SOCKET, SCM_CREDENTIALS, struct ucred);
|
||||
if (!cred) {
|
||||
log_error("No sender credentials received, ignoring message");
|
||||
return 0;
|
||||
}
|
||||
|
||||
cred = (struct ucred *) CMSG_DATA(cmsg);
|
||||
|
||||
if (cred->uid != 0) {
|
||||
log_error("Invalid sender uid "UID_FMT", ignoring message", cred->uid);
|
||||
return 0;
|
||||
|
|
Loading…
Reference in a new issue