Merge branch 'jc/exec-cmd-system-path-leak-fix'
The function sometimes returned a non-freeable memory and some other times returned a piece of memory that must be freed. * jc/exec-cmd-system-path-leak-fix: system_path(): always return free'able memory to the caller
This commit is contained in:
@ -321,16 +321,18 @@ static void setup_man_path(void)
|
||||
{
|
||||
struct strbuf new_path = STRBUF_INIT;
|
||||
const char *old_path = getenv("MANPATH");
|
||||
char *git_man_path = system_path(GIT_MAN_PATH);
|
||||
|
||||
/* We should always put ':' after our path. If there is no
|
||||
* old_path, the ':' at the end will let 'man' to try
|
||||
* system-wide paths after ours to find the manual page. If
|
||||
* there is old_path, we need ':' as delimiter. */
|
||||
strbuf_addstr(&new_path, system_path(GIT_MAN_PATH));
|
||||
strbuf_addstr(&new_path, git_man_path);
|
||||
strbuf_addch(&new_path, ':');
|
||||
if (old_path)
|
||||
strbuf_addstr(&new_path, old_path);
|
||||
|
||||
free(git_man_path);
|
||||
setenv("MANPATH", new_path.buf, 1);
|
||||
|
||||
strbuf_release(&new_path);
|
||||
@ -380,8 +382,10 @@ static void show_info_page(const char *git_cmd)
|
||||
static void get_html_page_path(struct strbuf *page_path, const char *page)
|
||||
{
|
||||
struct stat st;
|
||||
char *to_free = NULL;
|
||||
|
||||
if (!html_path)
|
||||
html_path = system_path(GIT_HTML_PATH);
|
||||
html_path = to_free = system_path(GIT_HTML_PATH);
|
||||
|
||||
/* Check that we have a git documentation directory. */
|
||||
if (!strstr(html_path, "://")) {
|
||||
@ -392,6 +396,7 @@ static void get_html_page_path(struct strbuf *page_path, const char *page)
|
||||
|
||||
strbuf_init(page_path, 0);
|
||||
strbuf_addf(page_path, "%s/%s.html", html_path, page);
|
||||
free(to_free);
|
||||
}
|
||||
|
||||
/*
|
||||
|
||||
Reference in New Issue
Block a user