diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-05-23 01:39:45 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-05-23 01:39:45 -0700 |
commit | e05aae684d453695bc5bd1e66aa96bc7d42e186a (patch) | |
tree | 6e4e87717266383da704063fca3e9db42c081b23 | |
parent | 5eb3d945539ece1f305669688ffb981f38bb4337 (diff) | |
parent | a4c2e69936df8dd0b071b85664c6cc6a4870dd84 (diff) | |
download | git-e05aae684d453695bc5bd1e66aa96bc7d42e186a.tar.gz git-e05aae684d453695bc5bd1e66aa96bc7d42e186a.tar.xz |
Merge branch 'rr/forbid-bs-in-ref'
* rr/forbid-bs-in-ref:
Disallow '\' in ref names
-rw-r--r-- | Documentation/git-check-ref-format.txt | 2 | ||||
-rw-r--r-- | refs.c | 3 |
2 files changed, 4 insertions, 1 deletions
diff --git a/Documentation/git-check-ref-format.txt b/Documentation/git-check-ref-format.txt index 0873e60f7..0b7982ea7 100644 --- a/Documentation/git-check-ref-format.txt +++ b/Documentation/git-check-ref-format.txt @@ -42,6 +42,8 @@ imposes the following rules on how references are named: . They cannot contain a sequence `@{`. +- They cannot contain a `\\`. + These rules make it easy for shell script based tools to parse reference names, pathname expansion by the shell when a reference name is used unquoted (by mistake), and also avoids ambiguities in certain @@ -682,12 +682,13 @@ int for_each_rawref(each_ref_fn fn, void *cb_data) * - it has ASCII control character, "~", "^", ":" or SP, anywhere, or * - it ends with a "/". * - it ends with ".lock" + * - it contains a "\" (backslash) */ static inline int bad_ref_char(int ch) { if (((unsigned) ch) <= ' ' || - ch == '~' || ch == '^' || ch == ':') + ch == '~' || ch == '^' || ch == ':' || ch == '\\') return 1; /* 2.13 Pattern Matching Notation */ if (ch == '?' || ch == '[') /* Unsupported */ |