mirror of
https://github.com/AuxXxilium/eudev.git
synced 2024-12-21 14:12:14 +07:00
udev/udev-ctrl.c:udev_ctrl_new_from_fd() enable SO_PASSCRED
Avoid "sender uid=65534, message ignored" case, where no credentials can be read on the sender side. Seems, the server socket does not enable credential receiving fast enough, and the message from the client (without credential) sometimes is queued before the credential passing was active. Signed-off-by: Anthony G. Basile <blueness@gentoo.org>
This commit is contained in:
parent
786cd8191b
commit
ca5fc30e5a
@ -73,6 +73,7 @@ struct udev_ctrl_connection {
|
||||
struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd)
|
||||
{
|
||||
struct udev_ctrl *uctrl;
|
||||
const int on = 1;
|
||||
|
||||
uctrl = calloc(1, sizeof(struct udev_ctrl));
|
||||
if (uctrl == NULL)
|
||||
@ -91,6 +92,7 @@ struct udev_ctrl *udev_ctrl_new_from_fd(struct udev *udev, int fd)
|
||||
uctrl->bound = true;
|
||||
uctrl->sock = fd;
|
||||
}
|
||||
setsockopt(uctrl->sock, SOL_SOCKET, SO_PASSCRED, &on, sizeof(on));
|
||||
|
||||
uctrl->saddr.sun_family = AF_LOCAL;
|
||||
util_strscpy(uctrl->saddr.sun_path, sizeof(uctrl->saddr.sun_path), "/run/udev/control");
|
||||
|
Loading…
Reference in New Issue
Block a user