On 06/07, Johannes Schindelin wrote:
> When discovering a .git/ directory, we take pains to ensure that its
> repository format version matches Git's expectations, and we return NULL
> otherwise.
>
> However, we still appended the invalid path to the strbuf passed as
> argument.
>
> Let's just reset the strbuf to the state before we appended the .git/
> directory that was eventually rejected.
>
> Signed-off-by: Johannes Schindelin <[email protected]>
Seems sane. This way the strbuf is in the same state it was in before
calling this function (upon a failure that is).
> ---
> setup.c | 1 +
> 1 file changed, 1 insertion(+)
>
> 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?
> }
>
> --
> 2.13.0.windows.1.460.g13f583bedb5
>
>
--
Brandon Williams