branch: fix a leak in check_tracking_branch
Let's fix a leak we have in check_tracking_branch() since the function
was introduced in 41c21f22d0
(branch.c: Validate tracking branches with
refspecs instead of refs/remotes/*, 2013-04-21).
The leak can be reviewed with:
$ git remote add local .
$ git update-ref refs/remotes/local/foo HEAD
$ git branch --track bar local/foo
Direct leak of 24 byte(s) in 1 object(s) allocated from:
... in xrealloc wrapper.c
... in strbuf_grow strbuf.c
... in strbuf_add strbuf.c
... in match_name_with_pattern remote.c
... in query_refspecs remote.c
... in remote_find_tracking remote.c
... in check_tracking_branch branch.c
... in for_each_remote remote.c
... in validate_remote_tracking_branch branch.c
... in dwim_branch_start branch.c
... in create_branch branch.c
... in cmd_branch builtin/branch.c
... in run_builtin git.c
Signed-off-by: Rubén Justo <rjusto@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
maint
parent
a88a3d7cd7
commit
caee1d669c
5
branch.c
5
branch.c
|
@ -480,9 +480,12 @@ static int check_tracking_branch(struct remote *remote, void *cb_data)
|
|||
{
|
||||
char *tracking_branch = cb_data;
|
||||
struct refspec_item query;
|
||||
int res;
|
||||
memset(&query, 0, sizeof(struct refspec_item));
|
||||
query.dst = tracking_branch;
|
||||
return !remote_find_tracking(remote, &query);
|
||||
res = !remote_find_tracking(remote, &query);
|
||||
free(query.src);
|
||||
return res;
|
||||
}
|
||||
|
||||
static int validate_remote_tracking_branch(char *ref)
|
||||
|
|
Loading…
Reference in New Issue