mirror of
https://github.com/git/git.git
synced 2026-08-07 08:31:51 +00:00
worktree: fix resource leaks when branch creation fails
In the "add" subcommand, when `run_command()` fails while creating a new branch (line 948), the function returns -1 immediately without freeing the allocations made earlier: path (from prefix_filename at line 858), opt_track, branch_to_free, and new_branch_to_free. Redirect the error return through the existing cleanup block at the end of the function so all four allocations are properly freed. Pointed out by Coverity. Assisted-by: Claude Opus 4.6 Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
committed by
Junio C Hamano
parent
add15d11ac
commit
da2211be74
@@ -945,14 +945,17 @@ static int add(int ac, const char **av, const char *prefix,
|
||||
strvec_push(&cp.args, branch);
|
||||
if (opt_track)
|
||||
strvec_push(&cp.args, opt_track);
|
||||
if (run_command(&cp))
|
||||
return -1;
|
||||
if (run_command(&cp)) {
|
||||
ret = -1;
|
||||
goto cleanup;
|
||||
}
|
||||
branch = new_branch;
|
||||
} else if (opt_track) {
|
||||
die(_("--[no-]track can only be used if a new branch is created"));
|
||||
}
|
||||
|
||||
ret = add_worktree(path, branch, &opts);
|
||||
cleanup:
|
||||
free(path);
|
||||
free(opt_track);
|
||||
free(branch_to_free);
|
||||
|
||||
Reference in New Issue
Block a user