mirror of
https://git.zx2c4.com/cgit
synced 2024-11-21 16:08:41 +00:00
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>
This commit is contained in:
parent
bd0293f570
commit
54c407a74a
@ -945,12 +945,13 @@ static void cgit_print_path_crumbs(char *path)
|
|||||||
{
|
{
|
||||||
char *old_path = ctx.qry.path;
|
char *old_path = ctx.qry.path;
|
||||||
char *p = path, *q, *end = path + strlen(path);
|
char *p = path, *q, *end = path + strlen(path);
|
||||||
|
int levels = 0;
|
||||||
|
|
||||||
ctx.qry.path = NULL;
|
ctx.qry.path = NULL;
|
||||||
cgit_self_link("root", NULL, NULL);
|
cgit_self_link("root", NULL, NULL);
|
||||||
ctx.qry.path = p = path;
|
ctx.qry.path = p = path;
|
||||||
while (p < end) {
|
while (p < end) {
|
||||||
if (!(q = strchr(p, '/')))
|
if (!(q = strchr(p, '/')) || levels > 15)
|
||||||
q = end;
|
q = end;
|
||||||
*q = '\0';
|
*q = '\0';
|
||||||
html_txt("/");
|
html_txt("/");
|
||||||
@ -958,6 +959,7 @@ static void cgit_print_path_crumbs(char *path)
|
|||||||
if (q < end)
|
if (q < end)
|
||||||
*q = '/';
|
*q = '/';
|
||||||
p = q + 1;
|
p = q + 1;
|
||||||
|
++levels;
|
||||||
}
|
}
|
||||||
ctx.qry.path = old_path;
|
ctx.qry.path = old_path;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user