udevd: event - fix event queue in daemenozied mode

We would enforce that events could only be added to the queue from the
main process, but that brake in daemonized mode. Relax the restriction
to only allow one process to add events to the queue.

Reported by Mantas Mikulėnas.
This commit is contained in:
Tom Gundersen 2015-05-24 15:20:36 +02:00
parent 2dd9f98d2d
commit 040e689654

View file

@ -564,7 +564,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) {
assert(manager);
assert(dev);
/* only the main process can add events to the queue */
/* only one process can add events to the queue */
if (manager->pid == 0)
manager->pid = getpid();
assert(manager->pid == getpid());
event = new0(struct event, 1);
@ -1300,8 +1303,6 @@ static int manager_new(Manager **ret) {
if (!manager)
return log_oom();
manager->pid = getpid();
manager->fd_ep = -1;
manager->fd_ctrl = -1;
manager->fd_uevent = -1;