git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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
Previous: Miriam RubioNext: Miriam Rubio
Message 8 of 24 in “Finish converting git bisect to C part 2”
  1. 00/13 Finish converting git bisect to C part 2Miriam Rubio, Jul 17, 2020
  2. 01/13 bisect--helper: BUG() in cmd_*() on invalid subcommandMiriam Rubio, Jul 17, 2020
  3. Shourya ShuklaJul 25, 2020
  4. 03/13 bisect--helper: introduce new `write_in_file()` functionMiriam Rubio, Jul 17, 2020
  5. Junio C HamanoJul 17, 2020
  6. 05/13 bisect: call 'clear_commit_marks_all()' in 'bisect_next_all()'Miriam Rubio, Jul 17, 2020
  7. 04/13 bisect--helper: reimplement `bisect_autostart` shell function in CMiriam Rubio, Jul 17, 2020
  8. Đoàn Trần Công DanhJul 26, 2020
  9. 08/13 bisect--helper: retire `--bisect-clean-state` subcommandMiriam Rubio, Jul 17, 2020
  10. 07/13 bisect--helper: finish porting `bisect_start()` to CMiriam Rubio, Jul 17, 2020
  11. 06/13 bisect--helper: reimplement `bisect_next` and `bisect_auto_next` shell functions in CMiriam Rubio, Jul 17, 2020
  12. Junio C HamanoJul 17, 2020
  13. Junio C HamanoJul 25, 2020
  14. 09/13 bisect--helper: retire `--next-all` subcommandMiriam Rubio, Jul 17, 2020
  15. 02/13 bisect--helper: use '-res' in 'cmd_bisect__helper' returnMiriam Rubio, Jul 17, 2020
  16. Shourya ShuklaJul 25, 2020
  17. Junio C HamanoJul 25, 2020
  18. Pratyush YadavJul 27, 2020
  19. Pratyush YadavJul 27, 2020
  20. Junio C HamanoJul 27, 2020
  21. 10/13 bisect--helper: reimplement `bisect_state` & `bisect_head` shell functions in CMiriam Rubio, Jul 17, 2020
  22. 11/13 bisect--helper: retire `--check-expected-revs` subcommandMiriam Rubio, Jul 17, 2020
  23. 13/13 bisect--helper: retire `--bisect-autostart` subcommandMiriam Rubio, Jul 17, 2020
  24. 12/13 bisect--helper: retire `--write-terms` subcommandMiriam Rubio, Jul 17, 2020

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.