diff mbox series

[5/6] config: fix leak in git_config_get_expiry_in_days()

Message ID 20200814161946.GE595698@coredump.intra.peff.net (mailing list archive)
State New, archived
Headers show
Series more small leak fixes | expand

Commit Message

Jeff King Aug. 14, 2020, 4:19 p.m. UTC
We use git_config_get_string() to retrieve the expiry value in a newly
allocated string. But after parsing it, we never free it, leaking the
memory.

We could fix this with a free() obviously, but there's an even better
solution: we can use the non-allocating "tmp" variant of the function;
we only need it to be valid for the lifetime of our parse function.

Signed-off-by: Jeff King <peff@peff.net>
---
 config.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff mbox series

Patch

diff --git a/config.c b/config.c
index 8bb1945aa9..968ef28e5b 100644
--- a/config.c
+++ b/config.c
@@ -2312,11 +2312,11 @@  int git_config_get_expiry(const char *key, const char **output)
 
 int git_config_get_expiry_in_days(const char *key, timestamp_t *expiry, timestamp_t now)
 {
-	char *expiry_string;
+	const char *expiry_string;
 	intmax_t days;
 	timestamp_t when;
 
-	if (git_config_get_string(key, &expiry_string))
+	if (git_config_get_string_tmp(key, &expiry_string))
 		return 1; /* no such thing */
 
 	if (git_parse_signed(expiry_string, &days, maximum_signed_value_of_type(int))) {