resolve_ref(): do not follow incorrectly-formatted symbolic refs
Emit a warning and fail if a symbolic reference refers to an incorrectly-formatted refname. Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Michael Haggerty committed
Sep 15, 2011 at 23:10 UTC
313fb010da4343eca22ee48a2cc18048d999de53
1 file changed
+5
refs.c
+5
@@ -581,6 +581,11 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
581
buf = buffer + 4;
582
while (isspace(*buf))
583
buf++;
584
+ if (check_refname_format(buf, REFNAME_ALLOW_ONELEVEL)) {
585
+ warning("symbolic reference in %s is formatted incorrectly",
586
+ path);
587
+ return NULL;
588
+ }
589
ref = strcpy(ref_buffer, buf);
590
if (flag)
591
*flag |= REF_ISSYMREF;