Skip to content

Commit bfc9f9c

Browse files
brandb97gitster
authored andcommitted
builtin/submodule--helper: fix leak when remote_submodule_branch() failed
In builtin/submodule--helper.c:update_submodule(), the variable remote_name is allocated in get_default_remote_submodule() but may be leaked if remote_submodule_branch() fails. Although it is unlikely that remote_submodule_branch() would fail after successfully obtaining a remote ref name from get_default_remote_submodule(), it is still possible. To prevent a potential memory leak, add a call to free(remote_name) at the early exit point. Signed-off-by: Lidong Yan <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent d50a5e8 commit bfc9f9c

File tree

1 file changed

+3
-1
lines changed

1 file changed

+3
-1
lines changed

builtin/submodule--helper.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2660,8 +2660,10 @@ static int update_submodule(struct update_data *update_data)
26602660
if (code)
26612661
return code;
26622662
code = remote_submodule_branch(update_data->sm_path, &branch);
2663-
if (code)
2663+
if (code) {
2664+
free(remote_name);
26642665
return code;
2666+
}
26652667
remote_ref = xstrfmt("refs/remotes/%s/%s", remote_name, branch);
26662668

26672669
free(remote_name);

0 commit comments

Comments
 (0)