diff options
Diffstat (limited to 'libdiskfs/console.c')
-rw-r--r-- | libdiskfs/console.c | 20 |
1 files changed, 14 insertions, 6 deletions
diff --git a/libdiskfs/console.c b/libdiskfs/console.c index fa4fc2c5..cd93f025 100644 --- a/libdiskfs/console.c +++ b/libdiskfs/console.c @@ -24,6 +24,7 @@ #include <unistd.h> #include <fcntl.h> #include <errno.h> +#include <error.h> #include <signal.h> #include <assert-backtrace.h> @@ -46,12 +47,19 @@ diskfs_console_stdio (void) else { int fd = open ("/dev/console", O_RDWR); - - dup2 (fd, 0); - dup2 (fd, 1); - dup2 (fd, 2); - if (fd > 2) - close (fd); + if (fd < 0) + { + mach_print ("Failed to open /dev/console\n"); + error (0, errno, "Failed to open /dev/console"); + } + else + { + dup2 (fd, 0); + dup2 (fd, 1); + dup2 (fd, 2); + if (fd > 2) + close (fd); + } } } else |