diff options
author | Edward Thomson <ethomson@edwardthomson.com> | 2017-05-01 21:34:21 +0100 |
---|---|---|
committer | Edward Thomson <ethomson@edwardthomson.com> | 2017-05-01 22:55:12 +0100 |
commit | 1dc89aab24ef157dff033a86b5d6c429df61f48d (patch) | |
tree | 4315ccb8199dd433781dc7b5b38f03f344071a11 /src/odb_loose.c | |
parent | 34c131062412480abd87ab825c2cd6c1b691e5f5 (diff) | |
download | libgit2-1dc89aab24ef157dff033a86b5d6c429df61f48d.tar.gz |
object validation: free some memleaksethomson/memleak
Diffstat (limited to 'src/odb_loose.c')
-rw-r--r-- | src/odb_loose.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/odb_loose.c b/src/odb_loose.c index e14af4fab..a97ac25eb 100644 --- a/src/odb_loose.c +++ b/src/odb_loose.c @@ -205,6 +205,11 @@ static int start_inflate(z_stream *s, git_buf *obj, void *out, size_t len) return inflate(s, 0); } +static void abort_inflate(z_stream *s) +{ + inflateEnd(s); +} + static int finish_inflate(z_stream *s) { int status = Z_OK; @@ -367,6 +372,7 @@ static int inflate_disk_obj(git_rawobj *out, git_buf *obj) (used = get_object_header(&hdr, head)) == 0 || !git_object_typeisloose(hdr.type)) { + abort_inflate(&zs); giterr_set(GITERR_ODB, "failed to inflate disk object"); return -1; } |