Re: [PATCH v5 04/13] bisect--helper: reimplement `bisect_autostart` shell function in C
- From
Đoàn Trần Công Danh <congdanhqx@gmail.com>
- Date
- Jul 26, 2020, 01:53 UTC
- Message-ID
- <20200726015300.GB8046@danh.dev>
- In-Reply-To
- <20200717105406.82226-5-mirucam@gmail.com>
On 2020-07-17 12:53:57+0200, Miriam Rubio <mirucam@gmail.com> wrote:
Show 25 quoted lines
> From: Pranit Bauva <pranit.bauva@gmail.com>
>
> +static int bisect_autostart(struct bisect_terms *terms)
> +{
> + int res;
> + const char *yesno;
> +
> + if (file_is_not_empty(git_path_bisect_start()))
> + return 0;
> +
> + fprintf_ln(stderr, _("You need to start by \"git bisect "
> + "start\"\n"));
> +
> + if (!isatty(STDIN_FILENO))
> + return 0;
> +
> + /*
> + * TRANSLATORS: Make sure to include [Y] and [n] in your
> + * translation. The program will only accept English input
> + * at this point.
> + */
> + yesno = git_prompt(_("Do you want me to do it for you "
> + "[Y/n]? "), PROMPT_ECHO);
> + res = tolower(*yesno) == 'n' ?
> + -1 : bisect_start(terms, 0, NULL, 0);Applying 01-04 ontop of v2.28.0-rc2-3-g418cca9555 (current git/git.git's master).
This line crash my git-bisect, MVCE:
./git-bisect--helper --bisect-autostart
Since it will pass NULL as argv to bisect_start, which expect an array of "argc + 1" of "char*" (the last element is NULL). And bisect_start attempts to log bisect entry for this call.
Quick fix: ----------------8<---------------
diff --git a/builtin/bisect--helper.c b/builtin/bisect--helper.c index 7662ec0ce3..25d3d07721 100644 --- a/builtin/bisect--helper.c +++ b/builtin/bisect--helper.c @@ -673,7 +673,7 @@ static int bisect_autostart(struct bisect_terms *terms) yesno = git_prompt(_("Do you want me to do it for you " "[Y/n]? "), PROMPT_ECHO); res = tolower(*yesno) == 'n' ? - -1 : bisect_start(terms, 0, NULL, 0); + -1 : bisect_start(terms, 0, empty_argv, 0); return res; } -------------------->8------------------ > + > + return res; This line is over-indented. IOW, move left 1 TAB.
-- Danh