diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2017-05-01 21:32:24 +0100 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2017-05-01 22:55:12 +0100 |
commit | 34c131062412480abd87ab825c2cd6c1b691e5f5 (patch) | |
tree | 294a019620a71591018963f471041b1a7ea8eac3 | |
parent | 4dbcf0e673b1761e536b9a5f385a771287f06232 (diff) | |
download | libgit2-34c131062412480abd87ab825c2cd6c1b691e5f5.tar.gz |
signature: free dup'd buffers on parse error
-rw-r--r-- | src/signature.c | 5 |
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) { |