diff options
-rw-r--r-- | jail/jail.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/jail/jail.c b/jail/jail.c index 31b64e5..09780ac 100644 --- a/jail/jail.c +++ b/jail/jail.c @@ -374,7 +374,7 @@ static int create_dev_console(const char *jail_root) { char *console_fname; char dev_console_path[PATH_MAX]; - int slave_console_fd; + int slave_console_fd, dev_console_dummy; /* Open UNIX/98 virtual console */ console_fd = posix_openpt(O_RDWR | O_NOCTTY); @@ -394,7 +394,11 @@ static int create_dev_console(const char *jail_root) /* mount-bind PTY slave to /dev/console in jail */ snprintf(dev_console_path, sizeof(dev_console_path), "%s/dev/console", jail_root); - close(creat(dev_console_path, 0620)); + dev_console_dummy = creat(dev_console_path, 0620); + if (dev_console_dummy < 0) + goto no_console; + + close(dev_console_dummy); if (mount(console_fname, dev_console_path, "bind", MS_BIND, NULL)) goto no_console; |