diff options
author | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-08-25 23:31:29 +0200 |
---|---|---|
committer | Carlos Martín Nieto <carlos@cmartin.tk> | 2012-08-25 23:31:29 +0200 |
commit | 7a57ae5478604df9a255a3067000336bc6bfd692 (patch) | |
tree | 06771222f6178b07deff2f6da810d1718ff3466d | |
parent | 8238401ccb9f7018c927866896bea583d351ad2a (diff) | |
download | libgit2-7a57ae5478604df9a255a3067000336bc6bfd692.tar.gz |
indexer: don't segfault when freeing an unused indexer
Make sure that idx->pack isn't NULL before trying to free resources
under it.
-rw-r--r-- | src/indexer.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/indexer.c b/src/indexer.c index 30c6469a..719f54e2 100644 --- a/src/indexer.c +++ b/src/indexer.c @@ -587,9 +587,11 @@ void git_indexer_stream_free(git_indexer_stream *idx) git_vector_foreach(&idx->objects, i, e) git__free(e); git_vector_free(&idx->objects); - git_vector_foreach(&idx->pack->cache, i, pe) - git__free(pe); - git_vector_free(&idx->pack->cache); + if (idx->pack) { + git_vector_foreach(&idx->pack->cache, i, pe) + git__free(pe); + git_vector_free(&idx->pack->cache); + } git_vector_foreach(&idx->deltas, i, delta) git__free(delta); git_vector_free(&idx->deltas); |