Commit 7eb4b9d0 authored by Jeff King's avatar Jeff King Committed by Junio C Hamano

validate_headref: use skip_prefix for symref parsing

Since the previous commit guarantees that our symref buffer
is NUL-terminated, we can just use skip_prefix() and friends
to parse it. This is shorter and saves us having to deal
with magic numbers and keeping the "len" counter up to date.

While we're at it, let's name the rather obscure "buf" to
"refname", since that is the thing we are parsing with it.
Signed-off-by: default avatarJeff King <[email protected]>
Signed-off-by: default avatarJunio C Hamano <[email protected]>
parent 6e68c914
......@@ -636,7 +636,8 @@ void strbuf_git_common_path(struct strbuf *sb,
int validate_headref(const char *path)
struct stat st;
char *buf, buffer[256];
char buffer[256];
const char *refname;
unsigned char sha1[20];
int fd;
ssize_t len;
......@@ -668,14 +669,10 @@ int validate_headref(const char *path)
* Is it a symbolic ref?
if (len < 4)
return -1;
if (!memcmp("ref:", buffer, 4)) {
buf = buffer + 4;
len -= 4;
while (len && isspace(*buf))
buf++, len--;
if (len >= 5 && !memcmp("refs/", buf, 5))
if (skip_prefix(buffer, "ref:", &refname)) {
while (isspace(*refname))
if (starts_with(refname, "refs/"))
return 0;
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment