summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
authorJoe Anakata2016-02-22 18:45:53 +0100
committerJason A. Donenfeld2016-02-22 18:46:33 +0100
commitde6098be6a65a4758ff8eac6359bd6fd30ba7bd3 (patch)
tree26ef2a8a74989348c2ec5bf17d0e1ac2a525294f
parent94c02bbf732d938c92df4961026c4d8f6fd4c37e (diff)
downloadcgit-de6098be6a65a4758ff8eac6359bd6fd30ba7bd3.tar.gz
ui-plain: fix to show a repo's root directory listing in plain view
This is to fix the case of accessing http://host.com/cgit.cgi/repo.git/plain/ There is code here to make this case work (match_baselen is set to -1 for top-of-the-tree views) but the unsigned to signed comparison was always false in this case, causing an empty directory listing without this fix. Signed-off-by: Joe Anakata <jea-signup-github@anakata.org> Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
-rw-r--r--ui-plain.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/ui-plain.c b/ui-plain.c
index ff85113..97cf639 100644
--- a/ui-plain.c
+++ b/ui-plain.c
@@ -143,7 +143,7 @@ static int walk_tree(const unsigned char *sha1, struct strbuf *base,
walk_tree_ctx->match = 2;
return READ_TREE_RECURSIVE;
}
- } else if (base->len > walk_tree_ctx->match_baselen) {
+ } else if (base->len < INT_MAX && (int)base->len > walk_tree_ctx->match_baselen) {
print_dir_entry(sha1, base->buf, base->len, pathname, mode);
walk_tree_ctx->match = 2;
} else if (S_ISDIR(mode)) {