aboutsummaryrefslogtreecommitdiff
path: root/check-ref-format.c
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2005-10-13 18:57:39 -0700
committerJunio C Hamano <junkio@cox.net>2005-10-15 11:23:39 -0700
commit03feddd6e8e779086ac2d131ded325f8e5601653 (patch)
tree2e3014b9197bcb57d48af9e62c193b1ffc6a67bd /check-ref-format.c
parentf51248eb482a7a0feacb04d02119c94d35845975 (diff)
downloadgit-03feddd6e8e779086ac2d131ded325f8e5601653.tar.gz
git-03feddd6e8e779086ac2d131ded325f8e5601653.tar.xz
git-check-ref-format: reject funny ref names.
Update check_ref_format() function to reject ref names that: * has a path component that begins with a ".", or * has a double dots "..", or * has ASCII control character, "~", "^", ":" or SP, anywhere, or * ends with a "/". Use it in 'git-checkout -b', 'git-branch', and 'git-tag' to make sure that newly created refs are well-formed. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'check-ref-format.c')
-rw-r--r--check-ref-format.c17
1 files changed, 17 insertions, 0 deletions
diff --git a/check-ref-format.c b/check-ref-format.c
new file mode 100644
index 000000000..a0adb3dcb
--- /dev/null
+++ b/check-ref-format.c
@@ -0,0 +1,17 @@
+/*
+ * GIT - The information manager from hell
+ */
+
+#include "cache.h"
+#include "refs.h"
+
+#include <stdio.h>
+
+int main(int ac, char **av)
+{
+ if (ac != 2)
+ usage("git-check-ref-format refname");
+ if (check_ref_format(av[1]))
+ exit(1);
+ return 0;
+}