From: Serge Hallyn Date: Fri, 30 Oct 2015 05:14:12 +0000 (+0000) Subject: only re-open fds if stdin is a tty X-Git-Tag: lxc-2.0.0.beta1~74 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d1df05bd5d70793bbd9bafc47aad1bdf5653900;p=thirdparty%2Flxc.git only re-open fds if stdin is a tty Signed-off-by: Serge Hallyn Acked-by: Stéphane Graber --- diff --git a/src/lxc/lxc_usernsexec.c b/src/lxc/lxc_usernsexec.c index 26608d6a5..37d92fbed 100644 --- a/src/lxc/lxc_usernsexec.c +++ b/src/lxc/lxc_usernsexec.c @@ -278,20 +278,22 @@ int main(int argc, char *argv[]) memset(ttyname0, '\0', sizeof(ttyname0)); memset(ttyname1, '\0', sizeof(ttyname1)); memset(ttyname2, '\0', sizeof(ttyname2)); - ret = readlink("/proc/self/fd/0", ttyname0, sizeof(ttyname0)); - if (ret < 0) { - perror("unable to open stdin."); - exit(1); - } - ret = readlink("/proc/self/fd/1", ttyname1, sizeof(ttyname1)); - if (ret < 0) { - printf("Warning: unable to open stdout, continuing."); - memset(ttyname1, '\0', sizeof(ttyname1)); - } - ret = readlink("/proc/self/fd/2", ttyname2, sizeof(ttyname2)); - if (ret < 0) { - printf("Warning: unable to open stderr, continueing."); - memset(ttyname2, '\0', sizeof(ttyname2)); + if (isatty(0)) { + ret = readlink("/proc/self/fd/0", ttyname0, sizeof(ttyname0)); + if (ret < 0) { + perror("unable to open stdin."); + exit(1); + } + ret = readlink("/proc/self/fd/1", ttyname1, sizeof(ttyname1)); + if (ret < 0) { + printf("Warning: unable to open stdout, continuing."); + memset(ttyname1, '\0', sizeof(ttyname1)); + } + ret = readlink("/proc/self/fd/2", ttyname2, sizeof(ttyname2)); + if (ret < 0) { + printf("Warning: unable to open stderr, continueing."); + memset(ttyname2, '\0', sizeof(ttyname2)); + } } lxc_list_init(&active_map);