checkout: fix leak of non-existent branch names
We unconditionally write a branch name into a newly allocated buffer in new_branch_info->path, via setup_branch_path(). We then check to see if the branch exists; if not, we set that field to NULL, leaking the memory. We should take care to free() it when doing so. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9101c8ea2d
commit
c514c62a4f
@ -1126,8 +1126,10 @@ static void setup_new_branch_info_and_source_tree(
|
||||
if (!check_refname_format(new_branch_info->path, 0) &&
|
||||
!read_ref(new_branch_info->path, &branch_rev))
|
||||
oidcpy(rev, &branch_rev);
|
||||
else
|
||||
else {
|
||||
free((char *)new_branch_info->path);
|
||||
new_branch_info->path = NULL; /* not an existing branch */
|
||||
}
|
||||
|
||||
new_branch_info->commit = lookup_commit_reference_gently(the_repository, rev, 1);
|
||||
if (!new_branch_info->commit) {
|
||||
|
Loading…
Reference in New Issue
Block a user