]> gitweb.ps.run Git - ps-cgit/commitdiff
ui-plain: fix to show a repo's root directory listing in plain view
authorJoe Anakata <jea-signup-github@anakata.org>
Mon, 22 Feb 2016 17:45:53 +0000 (18:45 +0100)
committerJason A. Donenfeld <Jason@zx2c4.com>
Mon, 22 Feb 2016 17:46:33 +0000 (18:46 +0100)
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>
ui-plain.c

index ff85113718464ddbcf68af205a2fae1b6e3e86d1..97cf6394e7021f6a2935b1d98a632eb1da8f81ba 100644 (file)
@@ -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)) {