X-Git-Url: https://gitweb.ps.run/ps-cgit/blobdiff_plain/c5c0eb873e0b9e40ffc3e85b621310ee85059ceb..f77e2a8cfaf07b25ddedd57348a1d957b048bbf5:/ui-shared.c?ds=inline diff --git a/ui-shared.c b/ui-shared.c index b739675..09c34fd 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -54,14 +54,14 @@ const char *cgit_httpscheme(void) return "http://"; } -const char *cgit_hosturl(void) +char *cgit_hosturl(void) { if (ctx.env.http_host) - return ctx.env.http_host; + return xstrdup(ctx.env.http_host); if (!ctx.env.server_name) return NULL; if (!ctx.env.server_port || atoi(ctx.env.server_port) == 80) - return ctx.env.server_name; + return xstrdup(ctx.env.server_name); return fmtalloc("%s:%s", ctx.env.server_name, ctx.env.server_port); } @@ -157,8 +157,11 @@ static void site_url(const char *page, const char *search, const char *sort, int if (always_root || page) html_attr(cgit_rooturl()); - else - html_attr(cgit_currenturl()); + else { + char *currenturl = cgit_currenturl(); + html_attr(currenturl); + free(currenturl); + } if (page) { htmlf("?p=%s", page); @@ -1020,19 +1023,21 @@ void cgit_print_pageheader(void) html("\n"); html("\n"); } else if (ctx.env.authenticated) { + char *currenturl = cgit_currenturl(); site_link(NULL, "index", NULL, hc("repolist"), NULL, NULL, 0, 1); if (ctx.cfg.root_readme) site_link("about", "about", NULL, hc("about"), NULL, NULL, 0, 1); html(""); html("
\n"); html("\n"); html("\n"); html("
"); + free(currenturl); } html("\n"); if (ctx.env.authenticated && ctx.qry.vpath) {