Skip to content

Commit

Permalink
conf: fix tty cleanup
Browse files Browse the repository at this point in the history
Fixes: Coverity 1461755.
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner authored and stgraber committed Apr 15, 2020
1 parent c7c55c1 commit 6810da4
Showing 1 changed file with 5 additions and 5 deletions.
10 changes: 5 additions & 5 deletions src/lxc/conf.c
Expand Up @@ -901,11 +901,13 @@ static int lxc_setup_ttys(struct lxc_conf *conf)
return 0;
}

define_cleanup_function(struct lxc_tty_info *, lxc_delete_tty);

int lxc_allocate_ttys(struct lxc_conf *conf)
{
__do_free struct lxc_terminal_info *tty_new = NULL;
struct lxc_terminal_info *tty_new = NULL;
int ret;
struct lxc_tty_info *ttys = &conf->ttys;
call_cleaner(lxc_delete_tty) struct lxc_tty_info *ttys = &conf->ttys;

/* no tty in the configuration */
if (ttys->max == 0)
Expand All @@ -924,14 +926,12 @@ int lxc_allocate_ttys(struct lxc_conf *conf)
ret = openpty(&tty->master, &tty->slave, NULL, NULL, NULL);
if (ret < 0) {
ttys->max = i;
lxc_delete_tty(ttys);
return log_error_errno(-ENOTTY, ENOTTY, "Failed to create tty %zu", i);
}

ret = ttyname_r(tty->slave, tty->name, sizeof(tty->name));
if (ret < 0) {
ttys->max = i;
lxc_delete_tty(ttys);
return log_error_errno(-ENOTTY, ENOTTY, "Failed to retrieve name of tty %zu slave", i);
}

Expand All @@ -953,7 +953,7 @@ int lxc_allocate_ttys(struct lxc_conf *conf)
}

INFO("Finished creating %zu tty devices", ttys->max);
ttys->tty = move_ptr(tty_new);
move_ptr(ttys);
return 0;
}

Expand Down

0 comments on commit 6810da4

Please sign in to comment.