]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
only re-open fds if stdin is a tty
authorSerge Hallyn <serge.hallyn@ubuntu.com>
Fri, 30 Oct 2015 05:14:12 +0000 (05:14 +0000)
committerStéphane Graber <stgraber@ubuntu.com>
Fri, 6 Nov 2015 19:54:52 +0000 (14:54 -0500)
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
src/lxc/lxc_usernsexec.c

index 26608d6a5ba387fb1001149d8f15a4ee3a3a9eaa..37d92fbeda886fb2574a4a30db71e6167097c54f 100644 (file)
@@ -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);