branch.c: use 'goto cleanup' in setup_tracking() to fix memory leaks
Signed-off-by: Glen Choo <chooglen@google.com> Reviewed-by: Jonathan Tan <jonathantanmy@google.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
961b130d20
commit
679e3693ab
7
branch.c
7
branch.c
@ -239,7 +239,7 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
|
|||||||
if (track != BRANCH_TRACK_INHERIT)
|
if (track != BRANCH_TRACK_INHERIT)
|
||||||
for_each_remote(find_tracked_branch, &tracking);
|
for_each_remote(find_tracked_branch, &tracking);
|
||||||
else if (inherit_tracking(&tracking, orig_ref))
|
else if (inherit_tracking(&tracking, orig_ref))
|
||||||
return;
|
goto cleanup;
|
||||||
|
|
||||||
if (!tracking.matches)
|
if (!tracking.matches)
|
||||||
switch (track) {
|
switch (track) {
|
||||||
@ -249,7 +249,7 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
|
|||||||
case BRANCH_TRACK_INHERIT:
|
case BRANCH_TRACK_INHERIT:
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
return;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (tracking.matches > 1)
|
if (tracking.matches > 1)
|
||||||
@ -262,7 +262,8 @@ static void setup_tracking(const char *new_ref, const char *orig_ref,
|
|||||||
tracking.remote, tracking.srcs) < 0)
|
tracking.remote, tracking.srcs) < 0)
|
||||||
exit(-1);
|
exit(-1);
|
||||||
|
|
||||||
string_list_clear(tracking.srcs, 0);
|
cleanup:
|
||||||
|
string_list_clear(&tracking_srcs, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
int read_branch_desc(struct strbuf *buf, const char *branch_name)
|
int read_branch_desc(struct strbuf *buf, const char *branch_name)
|
||||||
|
Loading…
Reference in New Issue
Block a user