summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorStefan Eichenberger2021-01-24 22:58:50 +0000
committerJohn Crispin2021-01-26 10:16:18 +0000
commit0aee1c30c046219b8cbd17492f1cb60c68d7e4f3 (patch)
treea3d5e43b3feacc23221042984f9bf7547ba4e53f
parent7f12c89d0b99a2f04e91b2327e74c049f6362b67 (diff)
downloadprocd-0aee1c30c046219b8cbd17492f1cb60c68d7e4f3.tar.gz
hotplug.c: set nl_pid to zero
With the current solution where nl_pid is set through getpid we run into problems when running procd in a different PID namespace (e.g. container). The PID number inside the active PID namespace will be set which doesn't match the global PID. Therefore, procd will never receive any netlink messages. By setting nl_pid to zero the kernel will assign the global PID automatically and fixes the issue. Signed-off-by: Stefan Eichenberger <eichest@gmail.com> Acked-by: John Crispin <john@phrozen.org>
-rw-r--r--plug/hotplug.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/plug/hotplug.c b/plug/hotplug.c
index 9aeb1c1..beff38a 100644
--- a/plug/hotplug.c
+++ b/plug/hotplug.c
@@ -612,7 +612,7 @@ void hotplug(char *rules)
rule_file = strdup(rules);
nls.nl_family = AF_NETLINK;
- nls.nl_pid = getpid();
+ nls.nl_pid = 0;
nls.nl_groups = -1;
if ((hotplug_fd.fd = socket(PF_NETLINK, SOCK_DGRAM | SOCK_CLOEXEC, NETLINK_KOBJECT_UEVENT)) == -1) {