summaryrefslogtreecommitdiff
path: root/git-commit-script
diff options
context:
space:
mode:
authorPatrick Steinhardt <ps@pks.im>2026-06-25 11:20:02 +0200
committerJunio C Hamano <gitster@pobox.com>2026-06-26 08:27:19 -0700
commit1f43ff2c7e4c1575960ad3b1338922d7fa837c0c (patch)
tree81948e1b9b3638dc461dee6f50ba352ce539d9e7 /git-commit-script
parent7d9ffe68f2fc525c676a71996550bc9a4d350d11 (diff)
refs: unregister reference stores from "chdir_notify"
When creating reference stores we register them with the "chdir_notify" subsystem. This is required because some of the paths we track may be relative paths, so we have to reparent them in case the current working directory changes. But while we register the reference stores, we never unregister them. This can have multiple outcomes: - For a repository's main reference database we essentially keep the pointer alive. We never free that database, either, and our leak checker doesn't notice because it's still registered. - For submodule and worktree reference databases we do eventually free them in `repo_clear()`, so we may keep pointers to free'd memory registered. We never notice though as we don't tend to chdir around in the middle of the process. We never noticed either of these symptoms, but they are obviously bad. Partially fix those issues by unregistering the reference stores when releasing them. The leak of the main reference database will be fixed in a subsequent commit. Note that this requires us to use `chdir_notify_register()` instead of `chdir_notify_reparent()`, as there is no infrastructure to unregister the latter. Signed-off-by: Patrick Steinhardt <ps@pks.im> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-commit-script')
0 files changed, 0 insertions, 0 deletions