diff options
author | Junio C Hamano <gitster@pobox.com> | 2012-05-04 15:35:18 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-10-19 16:12:45 -0700 |
commit | 5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627 (patch) | |
tree | 2cce79d0dd82edab6e29dfe44da0fb2ad8cff921 /remote.c | |
parent | d9f5ef7a4a760d58f1f824f9fb8c12ef0371d3a9 (diff) | |
download | git-5c08c1f23ad512fbcd06f4ee9bcf8818e17a2627.tar.gz |
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.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -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); |