Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
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.
if (!token)
continue;
- free(result);
+ free_disarm(result);
result = strdup(token);
/* Sanity check that there are no fields after that. */
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)