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

Re: [PATCH 1/9] discover_git_directory(): avoid setting invalid git_dir

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Jun 8, 2017, 10:00 UTC
Message-ID
<alpine.DEB.2.21.1.1706081143010.171564@virtualbox>
In-Reply-To
<20170607174529.GB110638@google.com>
Hi Brandon,
On Wed, 7 Jun 2017, Brandon Williams wrote:
Show 17 quoted lines
> On 06/07, Johannes Schindelin wrote:
>
> > diff --git a/setup.c b/setup.c
> > index e3f7699a902..2435186e448 100644
> > --- a/setup.c
> > +++ b/setup.c
> > @@ -982,6 +982,7 @@ const char *discover_git_directory(struct strbuf *gitdir)
> >  		warning("ignoring git dir '%s': %s",
> >  			gitdir->buf + gitdir_offset, err.buf);
> >  		strbuf_release(&err);
> > +		strbuf_setlen(gitdir, gitdir_offset);
> >  		return NULL;
> 
> There is another part of this function that returns NULL (which isn't
> shown by this diff) after performing 'setup_git_dir_gently_1', do we
> need to worry about anything that 'setup_git_dir_gently_1' has
> potentially appended to 'gitdir' upon 'setup_git_dir_gently_1' failing?

The setup_git_dir_gently_1() function used to set the git_dir variable directly in case of success, and leave it unchanged in case of error. My work to allow an early config did not change that, with the exception that it is the gitdir parameter that is changed instead of git_dir.

In other words: that `return NULL` is safe, as it returns due to an error reported by the setup_git_directory_gently_1() function (meaning that the gitdir strbuf has not been touched).

I amended the commit message accordingly, and force-pushed the result.
Meaning: v2 will have that change.

Ciao, Dscho

Previous: Brandon WilliamsNext: Johannes Schindelin
Message 4 of 34 in “Avoid problem where git_dir is set after alias expansion”
  1. 0/9 Avoid problem where git_dir is set after alias expansionJohannes Schindelin, Jun 7, 2017
  2. 1/9 discover_git_directory(): avoid setting invalid git_dirJohannes Schindelin, Jun 7, 2017
  3. Brandon WilliamsJun 7, 2017
  4. Johannes SchindelinJun 8, 2017
  5. 2/9 config: report correct line number upon errorJohannes Schindelin, Jun 7, 2017
  6. Junio C HamanoJun 9, 2017
  7. 3/9 help: use early config when autocorrecting aliasesJohannes Schindelin, Jun 7, 2017
  8. Brandon WilliamsJun 7, 2017
  9. Johannes SchindelinJun 8, 2017
  10. Junio C HamanoJun 9, 2017
  11. 4/9 read_early_config(): optionally return the worktree's top-level directoryJohannes Schindelin, Jun 7, 2017
  12. Brandon WilliamsJun 7, 2017
  13. Johannes SchindelinJun 8, 2017
  14. Brandon WilliamsJun 8, 2017
  15. Johannes SchindelinJun 8, 2017
  16. Brandon WilliamsJun 8, 2017
  17. Johannes SchindelinJun 8, 2017
  18. Brandon WilliamsJun 8, 2017
  19. 7/9 alias_lookup(): optionally return top-level directoryJohannes Schindelin, Jun 7, 2017
  20. 6/9 t7006: demonstrate a problem with aliases in subdirectoriesJohannes Schindelin, Jun 7, 2017
  21. 5/9 t1308: relax the test verifying that empty alias values are disallowedJohannes Schindelin, Jun 7, 2017
  22. Brandon WilliamsJun 7, 2017
  23. Johannes SchindelinJun 8, 2017
  24. Brandon WilliamsJun 8, 2017
  25. Junio C HamanoJun 10, 2017
  26. 8/9 Use the early config machinery to expand aliasesJohannes Schindelin, Jun 7, 2017
  27. Brandon WilliamsJun 7, 2017
  28. Johannes SchindelinJun 8, 2017
  29. Brandon WilliamsJun 8, 2017
  30. Junio C HamanoJun 10, 2017
  31. Johannes SchindelinJun 7, 2017
  32. Brandon WilliamsJun 7, 2017
  33. Johannes SchindelinJun 8, 2017
  34. Brandon WilliamsJun 8, 2017

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.