| Index: src/xz/list.c
|
| ===================================================================
|
| --- src/xz/list.c (revision 87706)
|
| +++ src/xz/list.c (working copy)
|
| @@ -382,14 +382,9 @@
|
| if (buf.u8[0] == 0)
|
| goto data_error;
|
|
|
| - lzma_block block;
|
| - lzma_filter filters[LZMA_FILTERS_MAX + 1];
|
| -
|
| - // Initialize the pointers so that they can be passed to free().
|
| - for (size_t i = 0; i < ARRAY_SIZE(filters); ++i)
|
| - filters[i].options = NULL;
|
| -
|
| // Initialize the block structure and decode Block Header Size.
|
| + lzma_filter filters[LZMA_FILTERS_MAX + 1];
|
| + lzma_block block;
|
| block.version = 0;
|
| block.check = iter->stream.flags->check;
|
| block.filters = filters;
|
| @@ -437,6 +432,10 @@
|
| break;
|
|
|
| case LZMA_DATA_ERROR:
|
| + // Free the memory allocated by lzma_block_header_decode().
|
| + for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
|
| + free(filters[i].options);
|
| +
|
| goto data_error;
|
|
|
| default:
|
| @@ -466,14 +465,6 @@
|
| // Show the error message.
|
| message_error("%s: %s", pair->src_name,
|
| message_strm(LZMA_DATA_ERROR));
|
| -
|
| - // Free the memory allocated by lzma_block_header_decode().
|
| - // This is truly needed only if we get here after a succcessful
|
| - // call to lzma_block_header_decode() but it doesn't hurt to
|
| - // always do it.
|
| - for (size_t i = 0; filters[i].id != LZMA_VLI_UNKNOWN; ++i)
|
| - free(filters[i].options);
|
| -
|
| return true;
|
| }
|
|
|
|
|