all repos — cgit @ 54c407a74a35d4ee9ffae94cc5bc9096c9f7f54a

a hyperfast web frontend for git written in c

ui-shared: restrict to 15 levels

Perhaps a more ideal version of this would be to not print breadcrumbs
at all for paths that don't exist in the given repo at the given oid.

Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reported-by: Fydor Wire Snark <wsnark@tuta.io>
Jason A. Donenfeld Jason@zx2c4.com
Mon, 20 May 2019 21:45:12 +0200
commit

54c407a74a35d4ee9ffae94cc5bc9096c9f7f54a

parent

bd0293f57015ede637b630fcaf4fc11e7697d777

1 files changed, 3 insertions(+), 1 deletions(-)

jump to
M ui-shared.cui-shared.c

@@ -945,12 +945,13 @@ static void cgit_print_path_crumbs(char *path)

{ char *old_path = ctx.qry.path; char *p = path, *q, *end = path + strlen(path); + int levels = 0; ctx.qry.path = NULL; cgit_self_link("root", NULL, NULL); ctx.qry.path = p = path; while (p < end) { - if (!(q = strchr(p, '/'))) + if (!(q = strchr(p, '/')) || levels > 15) q = end; *q = '\0'; html_txt("/");

@@ -958,6 +959,7 @@ cgit_self_link(p, NULL, NULL);

if (q < end) *q = '/'; p = q + 1; + ++levels; } ctx.qry.path = old_path; }