[PATCH] Fix config_file file leak.
- From
- Chris Wilson <cwilson@vigilantsw.com>
- Date
- Jul 14, 2011, 18:19 UTC
- Message-ID
- <20110714181948.GA23288@localhost>
Hi,
We are using Sentry (a C/C++ static analysis tool) to analyze git on a nightly basis. Sentry found that a file leak was recently introduced in the commit 924aaf3.
I'm hoping the attached patch correctly fixes up this leak.
Thanks, Chris
--
Chris Wilson
http://vigilantsw.com/
Vigilant Software, A C/C++ Static Analysis Company
---
config.c | 5 +++--
1 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/config.c b/config.c
index 1fc063b..bf61f09 100644
--- a/config.c
+++ b/config.c
@@ -1434,7 +1434,7 @@ int git_config_rename_section(const char *old_name, const char *new
struct lock_file *lock = xcalloc(sizeof(struct lock_file), 1);
int out_fd;
char buf[1024];
- FILE *config_file;
+ FILE *config_file = 0;
if (config_exclusive_filename)
config_filename = xstrdup(config_exclusive_filename);
@@ -1498,12 +1498,13 @@ int git_config_rename_section(const char *old_name, const char *n
goto out;
}
}
- fclose(config_file);
unlock_and_out:
if (commit_lock_file(lock) < 0)
ret = error("could not commit config file %s", config_filename);
out:
free(config_filename);
+ if (config_file)
+ fclose(config_file);
return ret;
}
--
1.7.0.4