Commit 17136538 by Yury G. Kudryashov

Reinit `reader` pointer after reading included config file

Fixes #2869. If included file includes more files, it may reallocate
cfg_file->readers, hence invalidate not only `r` pointer, but `result`
pointer as well.
parent 3ea78f24
...@@ -1284,6 +1284,7 @@ static int config_parse(git_strmap *values, diskfile_backend *cfg_file, struct r ...@@ -1284,6 +1284,7 @@ static int config_parse(git_strmap *values, diskfile_backend *cfg_file, struct r
if (result == 0) { if (result == 0) {
result = config_parse(values, cfg_file, r, level, depth+1); result = config_parse(values, cfg_file, r, level, depth+1);
r = git_array_get(cfg_file->readers, index); r = git_array_get(cfg_file->readers, index);
reader = git_array_get(cfg_file->readers, reader_idx);
} }
else if (result == GIT_ENOTFOUND) { else if (result == GIT_ENOTFOUND) {
giterr_clear(); giterr_clear();
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment