diff options
author | Christian Hesse <mail@eworm.de> | 2015-10-09 13:15:48 +0200 |
---|---|---|
committer | Jason A. Donenfeld <Jason@zx2c4.com> | 2015-10-09 14:02:41 +0200 |
commit | 3e244a0ccaef8303302a2c462f36b8bdf3634a46 (patch) | |
tree | d2acab80c012067c26bc853684a037cf3978c9d9 | |
parent | ui-shared: return value of cgit_currenturl is not const (diff) | |
download | cgit-pink-3e244a0ccaef8303302a2c462f36b8bdf3634a46.tar.gz cgit-pink-3e244a0ccaef8303302a2c462f36b8bdf3634a46.zip |
ui-shared: fix resource leak: free allocation from cgit_currenturl
Coverity-id: 13927 Signed-off-by: Christian Hesse <mail@eworm.de>
-rw-r--r-- | ui-shared.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/ui-shared.c b/ui-shared.c index b739675..f6d38de 100644 --- a/ui-shared.c +++ b/ui-shared.c @@ -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("<input type='submit' value='search'/>\n"); html("</form>\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("</td><td class='form'>"); html("<form method='get' action='"); - html_attr(cgit_currenturl()); + html_attr(currenturl); html("'>\n"); html("<input type='text' name='q' size='10' value='"); html_attr(ctx.qry.search); html("'/>\n"); html("<input type='submit' value='search'/>\n"); html("</form>"); + free(currenturl); } html("</td></tr></table>\n"); if (ctx.env.authenticated && ctx.qry.vpath) { |