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>
This commit is contained in:
parent
2f633f41d6
commit
f3738c1ce9
2
refs.c
2
refs.c
@ -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 */
|
||||
|
@ -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) &&
|
||||
|
Loading…
Reference in New Issue
Block a user