Commit ea767143 authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

tty: require stdin to be a terminal only if shell_job is set

Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Acked-by: 's avatarCyrill Gorcunov <gorcunov@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent 749116b4
......@@ -88,7 +88,7 @@ static int shmem_remap(void *old_addr, void *new_addr, unsigned long size)
return 0;
}
static int crtools_prepare_shared(void)
static int crtools_prepare_shared(struct cr_options *opts)
{
if (prepare_shared_fdinfo())
return -1;
......@@ -97,7 +97,7 @@ static int crtools_prepare_shared(void)
if (collect_inet_sockets())
return -1;
if (tty_prep_fds())
if (tty_prep_fds(opts))
return -1;
return 0;
......@@ -1258,7 +1258,7 @@ int cr_restore_tasks(pid_t pid, struct cr_options *opts)
if (prepare_pstree() < 0)
return -1;
if (crtools_prepare_shared() < 0)
if (crtools_prepare_shared(opts) < 0)
return -1;
return restore_root_task(root_item, opts);
......
......@@ -21,7 +21,7 @@ extern int tty_setup_slavery(void);
extern int tty_verify_active_pairs(void);
extern int tty_prep_fds(void);
extern int tty_prep_fds(struct cr_options *opts);
extern void tty_fini_fds(void);
#endif /* __CR_TTY_H__ */
......@@ -1193,8 +1193,11 @@ int dump_tty(struct fd_parms *p, int lfd, const int fdinfo)
return do_dump_gen_file(p, lfd, &tty_ops, fdinfo);
}
int tty_prep_fds(void)
int tty_prep_fds(struct cr_options *opts)
{
if (!opts->shell_job)
return 0;
if (!isatty(STDIN_FILENO)) {
pr_err("Standart stream is not a terminal, aborting\n");
return -1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment