Merge branch 'ps/leakfixes-part-7'
More leak-fixes. * ps/leakfixes-part-7: (23 commits) diffcore-break: fix leaking filespecs when merging broken pairs revision: fix leaking parents when simplifying commits builtin/maintenance: fix leak in `get_schedule_cmd()` builtin/maintenance: fix leaking config string promisor-remote: fix leaking partial clone filter grep: fix leaking grep pattern submodule: fix leaking submodule ODB paths trace2: destroy context stored in thread-local storage builtin/difftool: plug several trivial memory leaks builtin/repack: fix leaking configuration diffcore-order: fix leaking buffer when parsing orderfiles parse-options: free previous value of `OPTION_FILENAME` diff: fix leaking orderfile option builtin/pull: fix leaking "ff" option dir: fix off by one errors for ignored and untracked entries builtin/submodule--helper: fix leaking remote ref on errors t/helper: fix leaking subrepo in nested submodule config helper builtin/submodule--helper: fix leaking error buffer builtin/submodule--helper: clear child process when not running it submodule: fix leaking update strategy ...
This commit is contained in:
@ -54,7 +54,7 @@ static enum help_action {
|
||||
HELP_ACTION_CONFIG_SECTIONS_FOR_COMPLETION,
|
||||
} cmd_mode;
|
||||
|
||||
static const char *html_path;
|
||||
static char *html_path;
|
||||
static int verbose = 1;
|
||||
static enum help_format help_format = HELP_FORMAT_NONE;
|
||||
static int exclude_guides;
|
||||
@ -411,6 +411,7 @@ static int git_help_config(const char *var, const char *value,
|
||||
if (!strcmp(var, "help.htmlpath")) {
|
||||
if (!value)
|
||||
return config_error_nonbool(var);
|
||||
free(html_path);
|
||||
html_path = xstrdup(value);
|
||||
return 0;
|
||||
}
|
||||
@ -515,23 +516,24 @@ static void show_info_page(const char *page)
|
||||
static void get_html_page_path(struct strbuf *page_path, const char *page)
|
||||
{
|
||||
struct stat st;
|
||||
const char *path = html_path;
|
||||
char *to_free = NULL;
|
||||
|
||||
if (!html_path)
|
||||
html_path = to_free = system_path(GIT_HTML_PATH);
|
||||
if (!path)
|
||||
path = to_free = system_path(GIT_HTML_PATH);
|
||||
|
||||
/*
|
||||
* Check that the page we're looking for exists.
|
||||
*/
|
||||
if (!strstr(html_path, "://")) {
|
||||
if (stat(mkpath("%s/%s.html", html_path, page), &st)
|
||||
if (!strstr(path, "://")) {
|
||||
if (stat(mkpath("%s/%s.html", path, page), &st)
|
||||
|| !S_ISREG(st.st_mode))
|
||||
die("'%s/%s.html': documentation file not found.",
|
||||
html_path, page);
|
||||
path, page);
|
||||
}
|
||||
|
||||
strbuf_init(page_path, 0);
|
||||
strbuf_addf(page_path, "%s/%s.html", html_path, page);
|
||||
strbuf_addf(page_path, "%s/%s.html", path, page);
|
||||
free(to_free);
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user