]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
udevd: do not call udev_ctrl_enable_receiving() if the socket is passed from pid1 10919/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 26 Nov 2018 02:57:48 +0000 (11:57 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Mon, 26 Nov 2018 02:57:48 +0000 (11:57 +0900)
Before c4b69e990f962128cc6975e36e91e9ad838fa2c4, if the socket fd is
passed from pid1, `udev_ctrl_enable_receiving()` was not called.
Let's preserve the original logic.

src/udev/udevd.c

index aeec7fa77c58ac20af5b9379afec3d4eb027a2de..3b15beb4b3dafd06cbb14573c30b195bd584f7c0 100644 (file)
@@ -1617,9 +1617,11 @@ static int manager_new(Manager **ret, int fd_ctrl, int fd_uevent, const char *cg
         if (!manager->ctrl)
                 return log_error_errno(SYNTHETIC_ERRNO(EINVAL), "Failed to initialize udev control socket");
 
-        r = udev_ctrl_enable_receiving(manager->ctrl);
-        if (r < 0)
-                return log_error_errno(r, "Failed to bind udev control socket: %m");
+        if (fd_ctrl < 0) {
+                r = udev_ctrl_enable_receiving(manager->ctrl);
+                if (r < 0)
+                        return log_error_errno(r, "Failed to bind udev control socket: %m");
+        }
 
         fd_ctrl = udev_ctrl_get_fd(manager->ctrl);
         if (fd_ctrl < 0)