Johannes Schindelin <johannes.schinde...@gmx.de> writes:

> The buffer allocated by shorten_unambiguous_ref() needs to be released.

Yes.  Looks good.

>
> Discovered by Coverity.
>
> Signed-off-by: Johannes Schindelin <johannes.schinde...@gmx.de>
> ---
>  builtin/worktree.c | 8 +++++---
>  1 file changed, 5 insertions(+), 3 deletions(-)
>
> diff --git a/builtin/worktree.c b/builtin/worktree.c
> index 1722a9bdc2a..ff5dfd2b102 100644
> --- a/builtin/worktree.c
> +++ b/builtin/worktree.c
> @@ -414,9 +414,11 @@ static void show_worktree(struct worktree *wt, int 
> path_maxlen, int abbrev_len)
>                               find_unique_abbrev(wt->head_sha1, 
> DEFAULT_ABBREV));
>               if (wt->is_detached)
>                       strbuf_addstr(&sb, "(detached HEAD)");
> -             else if (wt->head_ref)
> -                     strbuf_addf(&sb, "[%s]", 
> shorten_unambiguous_ref(wt->head_ref, 0));
> -             else
> +             else if (wt->head_ref) {
> +                     char *ref = shorten_unambiguous_ref(wt->head_ref, 0);
> +                     strbuf_addf(&sb, "[%s]", ref);
> +                     free(ref);
> +             } else
>                       strbuf_addstr(&sb, "(error)");
>       }
>       printf("%s\n", sb.buf);

Reply via email to