diff options
author | Jeff King <peff@peff.net> | 2009-01-29 03:30:16 -0500 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-01-29 01:00:43 -0800 |
commit | b229d18a809c169314b7f0d048dc5a7632e8f916 (patch) | |
tree | 2d7131d7cf68a4e014e88ecb2134f5b3184aa286 | |
parent | b296e8fce6de6a40a41b5168dfbe735d11255256 (diff) | |
download | git-b229d18a809c169314b7f0d048dc5a7632e8f916.tar.gz |
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>
-rw-r--r-- | path.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -154,7 +154,7 @@ int validate_headref(const char *path) /* Make sure it is a "refs/.." symlink */ if (S_ISLNK(st.st_mode)) { 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 -1; } @@ -178,7 +178,7 @@ int validate_headref(const char *path) len -= 4; while (len && isspace(*buf)) buf++, len--; - if (len >= 5 && !memcmp("refs/", buf, 5)) + if (len >= 11 && !memcmp("refs/heads/", buf, 11)) return 0; } |