mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-03 13:43:07 +00:00
terminal: log TIOCGPTPEER failure less alarmingly
This is not a fatal error and the fallback codepath is equally safe. When we use TIOCGPTPEER we're using a stashed fd to the container's devpts mount's ptmx device and allocating a new fd non-path based through this ioctl. If this ioctl can't be used we're falling back to allocating a pts device from the host's devpts mount's ptmx device which is path-based but is not under control of the container and so that's safe. The difference is just that the first method gets you a nice native terminal with all the pleasantries of having tty and friends working whereas the latter method does not. Fixes: #3625 Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
This commit is contained in:
parent
984f5f0bc5
commit
f382bcc6d8
@ -931,7 +931,17 @@ static int lxc_terminal_create_native(const char *name, const char *lxcpath, str
|
||||
|
||||
terminal->pty = ioctl(terminal->ptx, TIOCGPTPEER, O_RDWR | O_NOCTTY | O_CLOEXEC);
|
||||
if (terminal->pty < 0) {
|
||||
SYSWARN("Failed to allocate new pty device");
|
||||
switch (errno) {
|
||||
case ENOTTY:
|
||||
SYSTRACE("Pure fd-based terminal allocation not possible");
|
||||
break;
|
||||
case ENOSPC:
|
||||
SYSTRACE("Exceeding number of allocatable terminals");
|
||||
break;
|
||||
default:
|
||||
SYSWARN("Failed to allocate new pty device");
|
||||
break;
|
||||
}
|
||||
goto err;
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user