From: Gabor Juhos Date: Fri, 19 Jul 2013 06:43:35 +0000 (+0200) Subject: early: keep stdio files open X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=c676a0cbb705a7164ca1306dc6212a45edcad495;p=oweals%2Fprocd.git early: keep stdio files open At the end of the 'early_console' function, the file descriptor is closed unconditionally. This 'close' call closes the stdio files if the fd returned by the 'open(dev/console)' call equals with any of the STD{IN,OUT,ERR}_FILENO values. When this happens, all subsequent accesses to the stdio files will fail and early console access won't work. To avoid this, don't close the file descriptor if that equals with any of the STD*_FILENO values. Signed-off-by: Gabor Juhos --- diff --git a/early.c b/early.c index 27d0929..204623b 100644 --- a/early.c +++ b/early.c @@ -65,7 +65,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)