X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=receive-pack.c;h=8f157bc3f0ef1f9d96bca18fc81854fc24bff936;hb=ad4f4daae80cb00000aca76e1528add6daf8f033;hp=1ef0c13935751903efc5c2dee738604a80b75de2;hpb=8c1f5f0f1f9c36ef5465512753efeff36758ba7d;p=git.git diff --git a/receive-pack.c b/receive-pack.c index 1ef0c139..8f157bc3 100644 --- a/receive-pack.c +++ b/receive-pack.c @@ -24,7 +24,7 @@ struct command { unsigned char updated; unsigned char old_sha1[20]; unsigned char new_sha1[20]; - char ref_name[]; + char ref_name[0]; }; static struct command *commands = NULL; @@ -95,6 +95,10 @@ static int update(const char *name, char new_hex[60], *old_hex, *lock_name; int newfd, namelen, written; + if (!strncmp(name, "refs/", 5) && check_ref_format(name + 5)) + return error("refusing to create funny ref '%s' locally", + name); + namelen = strlen(name); lock_name = xmalloc(namelen + 10); memcpy(lock_name, name, namelen);