| From: Lasse Collin <lasse.collin@tukaani.org> |
| Date: Fri, 27 May 2011 22:09:49 +0300 |
| Subject: liblzma: Handle allocation failures correctly in lzma_index_init(). |
| |
| Thanks to Jim Meyering. |
| --- |
| src/liblzma/common/index.c | 7 +++++-- |
| 1 file changed, 5 insertions(+), 2 deletions(-) |
| |
| diff --git a/src/liblzma/common/index.c b/src/liblzma/common/index.c |
| index ddb9d364..9af4bc19 100644 |
| --- a/src/liblzma/common/index.c |
| +++ b/src/liblzma/common/index.c |
| @@ -398,10 +398,13 @@ extern LZMA_API(lzma_index *) |
| lzma_index_init(lzma_allocator *allocator) |
| { |
| lzma_index *i = index_init_plain(allocator); |
| + if (i == NULL) |
| + return NULL; |
| + |
| index_stream *s = index_stream_init(0, 0, 1, 0, allocator); |
| - if (i == NULL || s == NULL) { |
| - index_stream_end(s, allocator); |
| + if (s == NULL) { |
| lzma_free(i, allocator); |
| + return NULL; |
| } |
| |
| index_tree_append(&i->streams, &s->node); |
| -- |
| 1.7.10.2 |
| |