summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--jail/jail.c8
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;