From: Jeff King Date: Thu, 29 Jan 2009 08:30:16 +0000 (-0500) Subject: validate_headref: tighten ref-matching to just branches X-Git-Tag: v1.6.2-rc0~17^2~1 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=b229d18a809c169314b7f0d048dc5a7632e8f916;p=git.git 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 Signed-off-by: Junio C Hamano --- diff --git a/path.c b/path.c index a074aea64..108d9e959 100644 --- a/path.c +++ b/path.c @@ -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; }