blob: e9ab3ea49c8f6de8cf79a581dfdd138be809db21 [file] [log] [blame]
From e35072c06a81c991c2ffa911315666d13515b221 Mon Sep 17 00:00:00 2001
From: Jeff King <peff@peff.net>
Date: Sun, 13 May 2018 13:00:23 -0400
Subject: verify_path: drop clever fallthrough
commit e19e5e66d691bdeeeb5e0ed2ffcecdd7666b0d7b upstream.
We check ".git" and ".." in the same switch statement, and
fall through the cases to share the end-of-component check.
While this saves us a line or two, it makes modifying the
function much harder. Let's just write it out.
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
---
read-cache.c | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/read-cache.c b/read-cache.c
index db5d910642..81479c4abd 100644
--- a/read-cache.c
+++ b/read-cache.c
@@ -818,8 +818,7 @@ static int verify_dotfile(const char *rest)
switch (*rest) {
/*
- * ".git" followed by NUL or slash is bad. This
- * shares the path end test with the ".." case.
+ * ".git" followed by NUL or slash is bad.
*/
case 'g':
case 'G':
@@ -827,8 +826,9 @@ static int verify_dotfile(const char *rest)
break;
if (rest[2] != 't' && rest[2] != 'T')
break;
- rest += 2;
- /* fallthrough */
+ if (rest[3] == '\0' || is_dir_sep(rest[3]))
+ return 0;
+ break;
case '.':
if (rest[1] == '\0' || is_dir_sep(rest[1]))
return 0;
--
2.17.0.921.gf22659ad46