diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-05-04 15:59:13 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-08 12:18:20 +0900 |
commit | 2e11f58fa6a0c904d9b00e51cfb2d8a3ee77b360 (patch) | |
tree | 268786c219d42ae0975509ddbc4ac6fe2731d16a /builtin | |
parent | name-rev: avoid leaking memory in the `deref` case (diff) | |
download | tgif-2e11f58fa6a0c904d9b00e51cfb2d8a3ee77b360.tar.xz |
show_worktree(): plug memory leak
The buffer allocated by shorten_unambiguous_ref() needs to be released.
Discovered by Coverity.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin')
-rw-r--r-- | builtin/worktree.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/builtin/worktree.c b/builtin/worktree.c index 1722a9bdc2..ff5dfd2b10 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); |