Skip to content

Commit

Permalink
attach: use cleanup macros in lxc_attach_getpwshell()
Browse files Browse the repository at this point in the history
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
  • Loading branch information
Christian Brauner committed Mar 9, 2020
1 parent cf4026f commit 1b9c9f5
Showing 1 changed file with 5 additions and 10 deletions.
15 changes: 5 additions & 10 deletions src/lxc/attach.c
Expand Up @@ -365,14 +365,13 @@ static int lxc_attach_set_environment(struct lxc_proc_context_info *init_ctx,

static char *lxc_attach_getpwshell(uid_t uid)
{
__do_free char *line = NULL;
__do_free char *line = NULL, *result = NULL;
__do_fclose FILE *pipe_f = NULL;
int fd, ret;
pid_t pid;
int pipes[2];
bool found = false;
size_t line_bufsz = 0;
char *result = NULL;

/* We need to fork off a process that runs the getent program, and we
* need to capture its output, so we use a pipe for that purpose.
Expand Down Expand Up @@ -489,7 +488,7 @@ static char *lxc_attach_getpwshell(uid_t uid)
if (!token)
continue;

free(result);
free_disarm(result);
result = strdup(token);

/* Sanity check that there are no fields after that. */
Expand All @@ -502,17 +501,13 @@ static char *lxc_attach_getpwshell(uid_t uid)

reap_child:
ret = wait_for_pid(pid);
if (ret < 0) {
free(result);
if (ret < 0)
return NULL;
}

if (!found) {
free(result);
if (!found)
return NULL;
}

return result;
return move_ptr(result);
}

static void lxc_attach_get_init_uidgid(uid_t *init_uid, gid_t *init_gid)
Expand Down

0 comments on commit 1b9c9f5

Please sign in to comment.