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>
This commit is contained in:
Michael Haggerty 2011-09-15 23:10:33 +02:00 committed by Junio C Hamano
parent b54cb79597
commit 1f58a03838

3
refs.c
View file

@ -521,7 +521,8 @@ const char *resolve_ref(const char *ref, unsigned char *sha1, int reading, int *
if (len < 0) if (len < 0)
return NULL; return NULL;
buffer[len] = 0; buffer[len] = 0;
if (!prefixcmp(buffer, "refs/")) { if (!prefixcmp(buffer, "refs/") &&
!check_refname_format(buffer, 0)) {
strcpy(ref_buffer, buffer); strcpy(ref_buffer, buffer);
ref = ref_buffer; ref = ref_buffer;
if (flag) if (flag)