We could rely on atexit() to clean up everything, but let's be explicit when we can. And it's good anyway because the function is called the second time in the same process, we're in trouble. This function should not affect the successful case because after commit_lock_file() is called, rollback_lock_file() becomes no-op. Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@xxxxxxxxx> --- config.c | 1 + 1 file changed, 1 insertion(+) diff --git a/config.c b/config.c index 505e0d0..e02def4 100644 --- a/config.c +++ b/config.c @@ -2483,6 +2483,7 @@ int git_config_rename_section_in_file(const char *config_filename, ret = error_errno("could not write config file %s", config_filename); out: + rollback_lock_file(lock); free(filename_buf); return ret; } -- 2.8.2.524.g6ff3d78