aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2015-05-24 15:20:36 +0200
committerMike Gilbert <floppym@gentoo.org>2015-05-24 11:44:39 -0400
commit75a070622fd0fcbb60dc7387eeefe103c54582f4 (patch)
tree410d4756ac87419940cd45703a59d735c9e94392
parentudevd: worker - modernize a bit (diff)
downloadsystemd-75a070622fd0fcbb60dc7387eeefe103c54582f4.tar.gz
systemd-75a070622fd0fcbb60dc7387eeefe103c54582f4.tar.bz2
systemd-75a070622fd0fcbb60dc7387eeefe103c54582f4.zip
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.
-rw-r--r--src/udev/udevd.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/udev/udevd.c b/src/udev/udevd.c
index 4a44b0314..b33a262ff 100644
--- a/src/udev/udevd.c
+++ b/src/udev/udevd.c
@@ -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;