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)