зеркало из https://github.com/microsoft/git.git
status: fix for old-style submodules with commondir
Inf9b7573f6b
(repository: free fields before overwriting them, 2017-09-05), Git was taught to release memory before overwriting it, but357a03ebe9
(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:
Родитель
3a43746ea6
Коммит
42fb4538ea
|
@ -51,7 +51,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;
|
||||
|
|
Загрузка…
Ссылка в новой задаче