]> git.proxmox.com Git - mirror_lxc.git/commitdiff
Attempt to fix control tty issues on attach
authorStéphane Graber <stgraber@ubuntu.com>
Fri, 13 Mar 2015 20:43:16 +0000 (16:43 -0400)
committerStéphane Graber <stgraber@ubuntu.com>
Fri, 13 Mar 2015 23:19:22 +0000 (19:19 -0400)
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
src/lxc/attach.c

index f70e42e8e7ef3697f4507f0c2923889a8373e9d2..faa90fcb932ac697b8ea7d8347642ded2e9f62ce 100644 (file)
@@ -984,6 +984,21 @@ static int attach_child_main(void* data)
        if (options->gid != (gid_t)-1)
                new_gid = options->gid;
 
+       /* setup the control tty */
+       if (options->stdin_fd) {
+               if (setsid() < 0) {
+                       SYSERROR("unable to setsid");
+                       shutdown(ipc_socket, SHUT_RDWR);
+                       rexit(-1);
+               }
+
+               if (ioctl(options->stdin_fd, TIOCSCTTY, (char *)NULL) < 0) {
+                       SYSERROR("unable to TIOCSTTY");
+                       shutdown(ipc_socket, SHUT_RDWR);
+                       rexit(-1);
+               }
+       }
+
        /* try to set the uid/gid combination */
        if ((new_gid != 0 || options->namespaces & CLONE_NEWUSER)) {
                if (setgid(new_gid) || setgroups(0, NULL)) {