mirror of
https://github.com/git/git.git
synced 2026-01-25 10:03:24 +00:00
remote: plug memory leak in match_explicit()
The `guess_ref()` returns an allocated buffer of which `make_linked_ref()` does not take custody (`alloc_ref()` makes a copy), therefore we need to release the buffer afterwards. Noticed via Coverity. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
5
remote.c
5
remote.c
@@ -1191,9 +1191,10 @@ static int match_explicit(struct ref *src, struct ref *dst,
|
||||
else if (is_null_oid(&matched_src->new_oid))
|
||||
error("unable to delete '%s': remote ref does not exist",
|
||||
dst_value);
|
||||
else if ((dst_guess = guess_ref(dst_value, matched_src)))
|
||||
else if ((dst_guess = guess_ref(dst_value, matched_src))) {
|
||||
matched_dst = make_linked_ref(dst_guess, dst_tail);
|
||||
else
|
||||
free(dst_guess);
|
||||
} else
|
||||
error("unable to push to unqualified destination: %s\n"
|
||||
"The destination refspec neither matches an "
|
||||
"existing ref on the remote nor\n"
|
||||
|
||||
Reference in New Issue
Block a user