summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEdward Thomson <ethomson@edwardthomson.com>2017-05-01 21:32:24 +0100
committerEdward Thomson <ethomson@edwardthomson.com>2017-05-01 22:55:12 +0100
commit34c131062412480abd87ab825c2cd6c1b691e5f5 (patch)
tree294a019620a71591018963f471041b1a7ea8eac3
parent4dbcf0e673b1761e536b9a5f385a771287f06232 (diff)
downloadlibgit2-34c131062412480abd87ab825c2cd6c1b691e5f5.tar.gz
signature: free dup'd buffers on parse error
-rw-r--r--src/signature.c5
1 files changed, 4 insertions, 1 deletions
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) {