Skip to content

Commit

Permalink
Merge pull request #1553 from brauner/2017-05-12/allow_no_controlling…
Browse files Browse the repository at this point in the history
…_terminal

lxc-attach: allow for situations without /dev/tty
  • Loading branch information
stgraber committed May 13, 2017
2 parents 66806d2 + 6f18b9c commit 1dd898c
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/lxc/console.c
Original file line number Diff line number Diff line change
Expand Up @@ -441,7 +441,7 @@ static int lxc_console_peer_default(struct lxc_console *console)

console->peer = lxc_unpriv(open(path, O_CLOEXEC | O_RDWR | O_CREAT | O_APPEND, 0600));
if (console->peer < 0) {
ERROR("failed to open \"%s\"", path);
ERROR("failed to open \"%s\": %s", path, strerror(errno));
return -ENOTTY;
}
DEBUG("using \"%s\" as peer tty device", path);
Expand Down
13 changes: 5 additions & 8 deletions src/lxc/tools/lxc_attach.c
Original file line number Diff line number Diff line change
Expand Up @@ -301,15 +301,12 @@ static int get_pty_on_host(struct lxc_container *c, struct wrapargs *wrap, int *

/* In the case of lxc-attach our peer pty will always be the current
* controlling terminal. We clear whatever was set by the user for
* lxc.console.path here and set it to "/dev/tty". Doing this will (a)
* prevent segfaults when the container has been setup with
* lxc.console = none and (b) provide an easy way to ensure that we
* always do the correct thing. strdup() must be used since console.path
* is free()ed when we call lxc_container_put(). */
* lxc.console.path here and set it NULL. lxc_console_peer_default()
* will then try to open /dev/tty. If the process doesn't have a
* controlling terminal we should still proceed.
*/
free(conf->console.path);
conf->console.path = strdup("/dev/tty");
if (!conf->console.path)
return -1;
conf->console.path = NULL;

/* Create pty on the host. */
if (lxc_console_create(conf) < 0)
Expand Down

0 comments on commit 1dd898c

Please sign in to comment.