aboutsummaryrefslogtreecommitdiff
path: root/fsmonitor-settings.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2024-05-29 09:32:24 -0700
committerJunio C Hamano <gitster@pobox.com>2024-05-29 09:32:24 -0700
commit5529cba09ff89b9762dbfd8f622e897948b60ab7 (patch)
tree3fad1f1ce36df7d8328a1a3c43a4dd41e37526a8 /fsmonitor-settings.c
parent3a57aa566a21e7a510c64881bc6bdff7eb397988 (diff)
parentebdbefa4fe9f618347124b37d44e517e0c6a3e4c (diff)
downloadgit-5529cba09ff89b9762dbfd8f622e897948b60ab7.tar.xz
Merge branch 'ps/leakfixes' into ps/no-writable-strings
* ps/leakfixes: builtin/mv: fix leaks for submodule gitfile paths builtin/mv: refactor to use `struct strvec` builtin/mv duplicate string list memory builtin/mv: refactor `add_slash()` to always return allocated strings strvec: add functions to replace and remove strings submodule: fix leaking memory for submodule entries commit-reach: fix memory leak in `ahead_behind()` builtin/credential: clear credential before exit config: plug various memory leaks config: clarify memory ownership in `git_config_string()` builtin/log: stop using globals for format config builtin/log: stop using globals for log config convert: refactor code to clarify ownership of check_roundtrip_encoding diff: refactor code to clarify memory ownership of prefixes config: clarify memory ownership in `git_config_pathname()` http: refactor code to clarify memory ownership checkout: clarify memory ownership in `unique_tracking_name()` strbuf: fix leak when `appendwholeline()` fails with EOF transport-helper: fix leaking helper name
Diffstat (limited to 'fsmonitor-settings.c')
-rw-r--r--fsmonitor-settings.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/fsmonitor-settings.c b/fsmonitor-settings.c
index a6a9e6bc19..e818583420 100644
--- a/fsmonitor-settings.c
+++ b/fsmonitor-settings.c
@@ -103,6 +103,7 @@ static struct fsmonitor_settings *alloc_settings(void)
static void lookup_fsmonitor_settings(struct repository *r)
{
const char *const_str;
+ char *to_free = NULL;
int bool_value;
if (r->settings.fsmonitor)
@@ -129,8 +130,9 @@ static void lookup_fsmonitor_settings(struct repository *r)
break;
case -1: /* config value set to an arbitrary string */
- if (repo_config_get_pathname(r, "core.fsmonitor", &const_str))
+ if (repo_config_get_pathname(r, "core.fsmonitor", &to_free))
return; /* should not happen */
+ const_str = to_free;
break;
default: /* should not happen */
@@ -141,6 +143,7 @@ static void lookup_fsmonitor_settings(struct repository *r)
fsm_settings__set_hook(r, const_str);
else
fsm_settings__set_disabled(r);
+ free(to_free);
}
enum fsmonitor_mode fsm_settings__get_mode(struct repository *r)