Skip to content

Commit

Permalink
conf: fix memory leak
Browse files Browse the repository at this point in the history
Fixes: Coverity 1472848
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner committed Feb 10, 2021
1 parent 11a3696 commit 9d0e129
Showing 1 changed file with 7 additions and 6 deletions.
13 changes: 7 additions & 6 deletions src/lxc/conf.c
Expand Up @@ -911,22 +911,23 @@ static int lxc_setup_ttys(struct lxc_conf *conf)
return 0;
}

define_cleanup_function(struct lxc_tty_info *, lxc_delete_tty);

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

/* no tty in the configuration */
if (ttys->max == 0)
return 0;

tty_new = malloc(sizeof(struct lxc_terminal_info) * ttys->max);
if (!tty_new)
ttys->tty = zalloc(sizeof(struct lxc_terminal_info) * ttys->max);
if (!ttys->tty)
return -ENOMEM;

for (size_t i = 0; i < conf->ttys.max; i++) {
struct lxc_terminal_info *tty = &tty_new[i];
struct lxc_terminal_info *tty = &ttys->tty[i];

tty->ptx = -EBADF;
tty->pty = -EBADF;
Expand Down Expand Up @@ -959,7 +960,7 @@ static int lxc_allocate_ttys(struct lxc_conf *conf)
}

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

Expand Down

0 comments on commit 9d0e129

Please sign in to comment.