We need to make sure that the ttys are actually initialized otherwise deleting
them is not safe.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
for (i = 0; i < ttys->max; i++) {
struct lxc_terminal_info *tty = &ttys->tty[i];
+ tty->master = -EBADF;
+ tty->slave = -EBADF;
ret = openpty(&tty->master, &tty->slave,
tty->name, NULL, NULL);
if (ret) {
{
int i;
+ if (!ttys->tty)
+ return;
+
for (i = 0; i < ttys->max; i++) {
struct lxc_terminal_info *tty = &ttys->tty[i];
- close(tty->master);
- close(tty->slave);
+ if (tty->master >= 0) {
+ close(tty->master);
+ tty->master = -EBADF;
+ }
+
+ if (tty->slave >= 0) {
+ close(tty->slave);
+ tty->slave = -EBADF;
+ }
}
free(ttys->tty);