Fix event type reporting when calling 'procd_shutdown'.
[project/procd.git] / early.c
diff --git a/early.c b/early.c
index 27d0929..f9e3277 100644 (file)
--- a/early.c
+++ b/early.c
@@ -53,10 +53,6 @@ static void early_console(const char *dev)
                mkdev("*console", 0600);
 
        dd = open(dev, O_RDWR);
-       close(STDIN_FILENO);
-       close(STDOUT_FILENO);
-       close(STDERR_FILENO);
-
        if (dd < 0) {
                ERROR("Failed to open %s\n", dev);
                return;
@@ -65,7 +61,11 @@ static void early_console(const char *dev)
        dup2(dd, STDIN_FILENO);
        dup2(dd, STDOUT_FILENO);
        dup2(dd, STDERR_FILENO);
-       close(dd);
+
+       if (dd != STDIN_FILENO &&
+           dd != STDOUT_FILENO &&
+           dd != STDERR_FILENO)
+               close(dd);
 }
 
 static void early_env(void)