зеркало из https://github.com/microsoft/git.git
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> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
5026b47175
Коммит
3dc7ea91da
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))
|
else if (is_null_oid(&matched_src->new_oid))
|
||||||
error("unable to delete '%s': remote ref does not exist",
|
error("unable to delete '%s': remote ref does not exist",
|
||||||
dst_value);
|
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);
|
matched_dst = make_linked_ref(dst_guess, dst_tail);
|
||||||
else
|
free(dst_guess);
|
||||||
|
} else
|
||||||
error("unable to push to unqualified destination: %s\n"
|
error("unable to push to unqualified destination: %s\n"
|
||||||
"The destination refspec neither matches an "
|
"The destination refspec neither matches an "
|
||||||
"existing ref on the remote nor\n"
|
"existing ref on the remote nor\n"
|
||||||
|
|
Загрузка…
Ссылка в новой задаче