Skip to content

Commit 51a0a4e

Browse files
tanushree27gitster
authored andcommitted
bisect--helper: avoid use-after-free
In 5e82c3d (bisect--helper: `bisect_reset` shell function in C, 2019-01-02), the `git bisect reset` subcommand was ported to C. When the call to `git checkout` failed, an error message was reported to the user. However, this error message used the `strbuf` that had just been released already. Let's switch that around: first use it, then release it. Mentored-by: Johannes Schindelin <[email protected]> Mentored-by: Christian Couder <[email protected]> Signed-off-by: Tanushree Tumane <[email protected]> Signed-off-by: Miriam Rubio <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent 367f12b commit 51a0a4e

File tree

1 file changed

+4
-3
lines changed

1 file changed

+4
-3
lines changed

builtin/bisect--helper.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -169,11 +169,12 @@ static int bisect_reset(const char *commit)
169169

170170
argv_array_pushl(&argv, "checkout", branch.buf, "--", NULL);
171171
if (run_command_v_opt(argv.argv, RUN_GIT_CMD)) {
172+
error(_("could not check out original"
173+
" HEAD '%s'. Try 'git bisect"
174+
" reset <commit>'."), branch.buf);
172175
strbuf_release(&branch);
173176
argv_array_clear(&argv);
174-
return error(_("could not check out original"
175-
" HEAD '%s'. Try 'git bisect"
176-
" reset <commit>'."), branch.buf);
177+
return -1;
177178
}
178179
argv_array_clear(&argv);
179180
}

0 commit comments

Comments
 (0)