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 /src/indexer.c | |
| 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.
Diffstat (limited to 'src/indexer.c')
| -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 30c6469a1..719f54e24 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); |
