diff options
author | Michael Haggerty <mhagger@alum.mit.edu> | 2011-08-27 06:12:44 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2011-08-27 11:47:49 -0700 |
commit | f3738c1ce9193a4bf45ba1a3ea67d0cf32da0257 (patch) | |
tree | ff76b2cc8cca0320d66b4e6b425baa1d7117fcba | |
parent | 2f633f41d69527cdd9ff5b8e04a752f1774fc3df (diff) | |
download | git-f3738c1ce9193a4bf45ba1a3ea67d0cf32da0257.tar.gz |
Forbid DEL characters in reference names
DEL is an ASCII control character and therefore should not be
permitted in reference names. Add tests for this and other unusual
characters.
Signed-off-by: Michael Haggerty <mhagger@alum.mit.edu>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | refs.c | 2 | ||||
-rwxr-xr-x | t/t1402-check-ref-format.sh | 3 |
2 files changed, 4 insertions, 1 deletions
@@ -837,7 +837,7 @@ int for_each_rawref(each_ref_fn fn, void *cb_data) static inline int bad_ref_char(int ch) { - if (((unsigned) ch) <= ' ' || + if (((unsigned) ch) <= ' ' || ch == 0x7f || ch == '~' || ch == '^' || ch == ':' || ch == '\\') return 1; /* 2.13 Pattern Matching Notation */ diff --git a/t/t1402-check-ref-format.sh b/t/t1402-check-ref-format.sh index 7563043c53..ed4275afe3 100755 --- a/t/t1402-check-ref-format.sh +++ b/t/t1402-check-ref-format.sh @@ -30,6 +30,9 @@ invalid_ref 'heads/foo.lock' valid_ref 'heads/foo@bar' invalid_ref 'heads/v@{ation' invalid_ref 'heads/foo\bar' +invalid_ref "$(printf 'heads/foo\t')" +invalid_ref "$(printf 'heads/foo\177')" +valid_ref "$(printf 'heads/fu\303\237')" test_expect_success "check-ref-format --branch @{-1}" ' T=$(git write-tree) && |