From 34c131062412480abd87ab825c2cd6c1b691e5f5 Mon Sep 17 00:00:00 2001 From: Edward Thomson Date: Mon, 1 May 2017 21:32:24 +0100 Subject: [PATCH] signature: free dup'd buffers on parse error --- src/signature.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/signature.c b/src/signature.c index e792a52f8..a56b8a299 100644 --- a/src/signature.c +++ b/src/signature.c @@ -228,8 +228,11 @@ int git_signature__parse(git_signature *sig, const char **buffer_out, const char *time_start = email_end + 2; const char *time_end; - if (git__strtol64(&sig->when.time, time_start, &time_end, 10) < 0) + if (git__strtol64(&sig->when.time, time_start, &time_end, 10) < 0) { + git__free(sig->name); + git__free(sig->email); return signature_error("invalid Unix timestamp"); + } /* do we have a timezone? */ if (time_end + 1 < buffer_end) {