initd: use patch_stdio() for kmodloader stdio redirection
authorJo-Philipp Wich <jo@mein.io>
Tue, 17 May 2016 15:00:45 +0000 (17:00 +0200)
committerJohn Crispin <john@phrozen.org>
Mon, 16 May 2016 19:00:24 +0000 (21:00 +0200)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
initd/init.c

index 4d17563..e453cff 100644 (file)
@@ -86,17 +86,9 @@ main(int argc, char **argv)
        if (!pid) {
                char *kmod[] = { "/sbin/kmodloader", "/etc/modules-boot.d/", NULL };
 
-               if (debug < 3) {
-                       int fd = open("/dev/null", O_RDWR);
-
-                       if (fd > -1) {
-                               dup2(fd, STDIN_FILENO);
-                               dup2(fd, STDOUT_FILENO);
-                               dup2(fd, STDERR_FILENO);
-                               if (fd > STDERR_FILENO)
-                                       close(fd);
-                       }
-               }
+               if (debug < 3)
+                       patch_stdio("/dev/null");
+
                execvp(kmod[0], kmod);
                ERROR("Failed to start kmodloader\n");
                exit(-1);