From: Lasse Collin Date: Wed, 23 Jan 2008 21:35:49 +0000 (+0200) Subject: Fix decoding of Extra Records that have empty Data. X-Git-Tag: upstream/5.1.3~799 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=3a7cc5c3dec7b078941f961b0393b86c418883b6;p=platform%2Fupstream%2Fxz.git Fix decoding of Extra Records that have empty Data. --- diff --git a/src/liblzma/common/metadata_decoder.c b/src/liblzma/common/metadata_decoder.c index 298a424..9704575 100644 --- a/src/liblzma/common/metadata_decoder.c +++ b/src/liblzma/common/metadata_decoder.c @@ -356,7 +356,18 @@ process(lzma_coder *coder, lzma_allocator *allocator) case SEQ_EXTRA_SIZE: case SEQ_EXTRA_DUMMY_SIZE: read_vli(coder->tmp); - ++coder->sequence; + + if (coder->tmp == 0) { + // We have no Data in the Extra Record. Don't + // allocate any memory for it. Go back to + // SEQ_EXTRA_ALLOC or SEQ_EXTRA_DUMMY_ALLOC. + coder->tmp = 0; + coder->sequence -= 2; + coder->todo_count = 0; + } else { + ++coder->sequence; + } + break; case SEQ_EXTRA_DATA_ALLOC: {