diff options
author | Johannes Schindelin <johannes.schindelin@gmx.de> | 2017-05-04 15:55:41 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-05-08 12:18:19 +0900 |
commit | 4db7dbdb4ae5426ab133b3844ea2a6889c6897d7 (patch) | |
tree | cbe97e36732a0e6bfb874b2cd0027ee2ba87f0fe | |
parent | 5748693b9123f55363211d18e8074db5e1b8384e (diff) | |
download | git-4db7dbdb4ae5426ab133b3844ea2a6889c6897d7.tar.gz |
git_config_rename_section_in_file(): avoid resource leak
In case of errors, we really want the file descriptor to be closed.
Discovered by a Coverity scan.
Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | config.c | 5 |
1 files changed, 4 insertions, 1 deletions
@@ -2621,7 +2621,7 @@ int git_config_rename_section_in_file(const char *config_filename, struct lock_file *lock; int out_fd; char buf[1024]; - FILE *config_file; + FILE *config_file = NULL; struct stat st; if (new_name && !section_name_is_ok(new_name)) { @@ -2703,11 +2703,14 @@ int git_config_rename_section_in_file(const char *config_filename, } } fclose(config_file); + config_file = NULL; commit_and_out: if (commit_lock_file(lock) < 0) ret = error_errno("could not write config file %s", config_filename); out: + if (config_file) + fclose(config_file); rollback_lock_file(lock); out_no_rollback: free(filename_buf); |