[PATCH] config.c: fix writing config files on Windows network shares
- From
Karsten Blees <karsten.blees@gmail.com>
- Date
- Jun 30, 2015, 14:34 UTC
- Message-ID
- <5592A8E5.2090601@gmail.com>
- In-Reply-To
- <20150528075443.GB23395@peff.net>
Renaming to an existing file doesn't work on Windows network shares if the target file is open.
munmap() the old config file before commit_lock_file.
Signed-off-by: Karsten Blees <blees@dcon.de> ---
See https://github.com/git-for-windows/git/issues/226
Strangely, renaming to an open file works fine on local disks...
config.c | 3 +++ 1 file changed, 3 insertions(+)
diff --git a/config.c b/config.c index 07133ef..3a23c11 100644 --- a/config.c +++ b/config.c @@ -2153,6 +2153,9 @@ int git_config_set_multivar_in_file(const char *config_filename, contents_sz - copy_begin) < contents_sz - copy_begin) goto write_err_out; + + munmap(contents, contents_sz); + contents = NULL; } if (commit_lock_file(lock) < 0) {
-- 2.4.3.windows.1.1.g87477f9