diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-06-14 13:35:26 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-06-15 12:31:43 -0700 |
commit | 69743f9b4f8411853e347fbd392221552b43fd12 (patch) | |
tree | fd9dfba846d5ac17ec92d51dfbb3aab34a8c4878 | |
parent | b06d3643105c8758ed019125a4399cb7efdcce2c (diff) | |
download | git-69743f9b4f8411853e347fbd392221552b43fd12.tar.gz |
discover_git_directory(): avoid setting invalid git_dir
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.
There is another early return path in that function, when
setup_git_directory_gently_1() returns GIT_DIR_NONE or an error. In that
case, the gitdir parameter has not been touched, therefore there is no
need for an equivalent change in that code path.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Reviewed-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | setup.c | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -977,6 +977,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; } |