On Fri, Feb 2, 2018 at 4:15 AM, Eric Sunshine <sunshine@xxxxxxxxxxxxxx> wrote: > On Wed, Jan 24, 2018 at 4:53 AM, Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> wrote: >> +static int move_worktree(int ac, const char **av, const char *prefix) >> +{ >> + [...] >> + worktrees = get_worktrees(0); >> + wt = find_worktree(worktrees, prefix, av[0]); >> + if (!wt) >> + die(_("'%s' is not a working tree"), av[0]); > > This is still leaking 'worktrees'[1]. You probably want > free_worktrees() immediately after the find_worktree() invocation. Sorry, free_worktrees() after the last use of 'wt' since you still need to access its fields, which would be the end of the function.