diff options
author | Yury G. Kudryashov <urkud@urkud.name> | 2015-02-05 23:39:59 +0300 |
---|---|---|
committer | Carlos MartÃn Nieto <cmn@dwim.me> | 2015-03-21 21:12:09 +0100 |
commit | 277d64773ec60dc77b0cdef88360a618fb0047f2 (patch) | |
tree | b5a03c9d12bcd498c0609bcab81662c36e66a0cc | |
parent | 3bdcea885c7899cfdfc14aa299529acd47f21ad1 (diff) | |
download | libgit2-277d64773ec60dc77b0cdef88360a618fb0047f2.tar.gz |
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.
-rw-r--r-- | src/config_file.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/config_file.c b/src/config_file.c index 4f041e7e3..268cced09 100644 --- a/src/config_file.c +++ b/src/config_file.c @@ -1284,6 +1284,7 @@ static int config_parse(git_strmap *values, diskfile_backend *cfg_file, struct r if (result == 0) { result = config_parse(values, cfg_file, r, level, depth+1); r = git_array_get(cfg_file->readers, index); + reader = git_array_get(cfg_file->readers, reader_idx); } else if (result == GIT_ENOTFOUND) { giterr_clear(); |