[PATCH procd] hotplug.c: set nl_pid to zero

eichest at gmail.com eichest at gmail.com
Sun Jan 24 17:58:50 EST 2021


From: Stefan Eichenberger <eichest at gmail.com>

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 at gmail.com>
---
 plug/hotplug.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

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) {
-- 
2.27.0




More information about the openwrt-devel mailing list