diff options
author | Robin Rosenberg <robin.rosenberg@dewire.com> | 2009-05-08 07:32:37 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-05-09 01:35:49 -0700 |
commit | a4c2e69936df8dd0b071b85664c6cc6a4870dd84 (patch) | |
tree | 45483a8bdac09aa9d018908ae21dca603aa9e890 /refs.c | |
parent | f01f1099f40f24fe6f7802185340a6fa3a3d4f35 (diff) | |
download | git-a4c2e69936df8dd0b071b85664c6cc6a4870dd84.tar.gz |
Disallow '\' in ref names
This is asking for trouble since '\' is a directory separator in
Windows and thus may produce unpredictable results.
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'refs.c')
-rw-r--r-- | refs.c | 3 |
1 files changed, 2 insertions, 1 deletions
@@ -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 */ |