Merge branch 'ps/leakfixes-part-7' into ps/leakfixes-part-8
* 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:
7
diff.c
7
diff.c
@ -443,8 +443,10 @@ int git_diff_ui_config(const char *var, const char *value,
|
||||
}
|
||||
if (!strcmp(var, "diff.wordregex"))
|
||||
return git_config_string(&diff_word_regex_cfg, var, value);
|
||||
if (!strcmp(var, "diff.orderfile"))
|
||||
if (!strcmp(var, "diff.orderfile")) {
|
||||
FREE_AND_NULL(diff_order_file_cfg);
|
||||
return git_config_pathname(&diff_order_file_cfg, var, value);
|
||||
}
|
||||
|
||||
if (!strcmp(var, "diff.ignoresubmodules")) {
|
||||
if (!value)
|
||||
@ -4778,7 +4780,7 @@ void repo_diff_setup(struct repository *r, struct diff_options *options)
|
||||
if (diff_indent_heuristic)
|
||||
DIFF_XDL_SET(options, INDENT_HEURISTIC);
|
||||
|
||||
options->orderfile = diff_order_file_cfg;
|
||||
options->orderfile = xstrdup_or_null(diff_order_file_cfg);
|
||||
|
||||
if (!options->flags.ignore_submodule_set)
|
||||
options->flags.ignore_untracked_in_submodules = 1;
|
||||
@ -6730,6 +6732,7 @@ void diff_free(struct diff_options *options)
|
||||
FREE_AND_NULL(options->objfind);
|
||||
}
|
||||
|
||||
FREE_AND_NULL(options->orderfile);
|
||||
for (size_t i = 0; i < options->anchors_nr; i++)
|
||||
free(options->anchors[i]);
|
||||
FREE_AND_NULL(options->anchors);
|
||||
|
||||
Reference in New Issue
Block a user