summaryrefslogtreecommitdiff
path: root/remote.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2012-05-04 22:35:18 (GMT)
committerJunio C Hamano <gitster@pobox.com>2012-10-19 23:12:45 (GMT)
commit5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627 (patch)
tree2cce79d0dd82edab6e29dfe44da0fb2ad8cff921 /remote.c
parentd9f5ef7a4a760d58f1f824f9fb8c12ef0371d3a9 (diff)
downloadgit-5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627.zip
git-5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627.tar.gz
git-5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627.tar.bz2
get_fetch_map(): tighten checks on dest refs
The code to check the refname we store the fetched result locally did not bother checking the first 5 bytes of it, presumably assuming that it always begin with "refs/". For a fetch refspec (or the result of applying wildcard on one), we always want the RHS to map to something inside "refs/" hierarchy, so let's spell that rule out in a more explicit way. Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'remote.c')
-rw-r--r--remote.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/remote.c b/remote.c
index e2ef991..044f229 100644
--- a/remote.c
+++ b/remote.c
@@ -1402,8 +1402,8 @@ int get_fetch_map(const struct ref *remote_refs,
for (rmp = &ref_map; *rmp; ) {
if ((*rmp)->peer_ref) {
- if (check_refname_format((*rmp)->peer_ref->name + 5,
- REFNAME_ALLOW_ONELEVEL)) {
+ if (prefixcmp((*rmp)->peer_ref->name, "refs/") ||
+ check_refname_format((*rmp)->peer_ref->name, 0)) {
struct ref *ignore = *rmp;
error("* Ignoring funny ref '%s' locally",
(*rmp)->peer_ref->name);