mirror of
https://github.com/git-for-windows/git.git
synced 2026-02-03 18:59:59 -06:00
status: fix for old-style submodules with commondir
In f9b7573f6b00 (repository: free fields before overwriting them, 2017-09-05), Git was taught to release memory before overwriting it, but 357a03ebe9e0 (repository.c: move env-related setup code back to environment.c, 2018-03-03) changed the code so that it would not _always_ be overwritten. As a consequence, the `commondir` attribute would point to already-free()d memory. This seems not to cause problems in core Git, but there are add-on patches in Git for Windows where the `commondir` attribute is subsequently used and causing invalid memory accesses e.g. in setups containing old-style submodules (i.e. the ones with a `.git` directory within theirs worktrees) that have `commondir` configured. This fixes https://github.com/git-for-windows/git/pull/4083. Signed-off-by: Andrey Zabavnikov <zabavnikov@gmail.com> Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
This commit is contained in:
parent
b4f0424fce
commit
e30b81fd3f
@ -136,7 +136,7 @@ static void repo_set_commondir(struct repository *repo,
|
||||
{
|
||||
struct strbuf sb = STRBUF_INIT;
|
||||
|
||||
free(repo->commondir);
|
||||
FREE_AND_NULL(repo->commondir);
|
||||
|
||||
if (commondir) {
|
||||
repo->different_commondir = 1;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user