mirror of
https://github.com/git/git
synced 2024-08-27 11:39:22 +00:00
validate_headref: tighten ref-matching to just branches
When we are trying to determine whether a directory contains a git repository, one of the tests we do is to check whether HEAD is either a symlink or a symref into the "refs/" hierarchy, or a detached HEAD. We can tighten this a little more, though: a non-detached HEAD should always point to a branch (since checking out anything else should result in detachment), so it is safe to check for "refs/heads/". Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
b296e8fce6
commit
b229d18a80
4
path.c
4
path.c
|
@ -154,7 +154,7 @@ int validate_headref(const char *path)
|
||||||
/* Make sure it is a "refs/.." symlink */
|
/* Make sure it is a "refs/.." symlink */
|
||||||
if (S_ISLNK(st.st_mode)) {
|
if (S_ISLNK(st.st_mode)) {
|
||||||
len = readlink(path, buffer, sizeof(buffer)-1);
|
len = readlink(path, buffer, sizeof(buffer)-1);
|
||||||
if (len >= 5 && !memcmp("refs/", buffer, 5))
|
if (len >= 11 && !memcmp("refs/heads/", buffer, 11))
|
||||||
return 0;
|
return 0;
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
@ -178,7 +178,7 @@ int validate_headref(const char *path)
|
||||||
len -= 4;
|
len -= 4;
|
||||||
while (len && isspace(*buf))
|
while (len && isspace(*buf))
|
||||||
buf++, len--;
|
buf++, len--;
|
||||||
if (len >= 5 && !memcmp("refs/", buf, 5))
|
if (len >= 11 && !memcmp("refs/heads/", buf, 11))
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue