resolve_ref(): only follow a symlink that contains a valid, normalized 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
1f58a0383857e5328e3e4d248d6c4a3485098679
1 file changed
+2
-1
refs.c
+2
-1
@@ -521,7 +521,8 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
521
if (len < 0)
522
return NULL;
523
buffer[len] = 0;
524
- if (!prefixcmp(buffer, "refs/")) {
524
+ if (!prefixcmp(buffer, "refs/") &&
525
+ !check_refname_format(buffer, 0)) {
526
strcpy(ref_buffer, buffer);
527
ref = ref_buffer;
528
if (flag)