Commit 36f80742 by Joe Rabinoff

Fix segfault in loose_backend__readstream

If the routine exits with error before stream or hash_ctx is initialized, the
program will segfault when trying to free them.
parent e7873eb2
......@@ -1028,11 +1028,16 @@ static int loose_backend__readstream(
done:
if (error < 0) {
git_futils_mmap_free(&stream->map);
git_zstream_free(&stream->zstream);
git_hash_ctx_cleanup(hash_ctx);
git__free(hash_ctx);
git__free(stream);
if(stream && stream->map.data)
git_futils_mmap_free(&stream->map);
if(stream)
git_zstream_free(&stream->zstream);
if(stream)
git__free(stream);
if(hash_ctx) {
git_hash_ctx_cleanup(hash_ctx);
git__free(hash_ctx);
}
}
git_buf_dispose(&object_path);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment