liblzma: Check for unexpected NULL pointers in block_header_decode().

The API docs gave an impression that such checks are done
but they actually weren't done. In practice it made little
difference since the calling code has a bug if these are NULL.

Thanks to Jia Tan for the original patch that checked for
block->filters == NULL.
This commit is contained in:
Lasse Collin 2022-12-08 17:30:09 +02:00
parent 24790f49ae
commit ac2a747e93
1 changed files with 4 additions and 0 deletions

View File

@ -23,6 +23,10 @@ lzma_block_header_decode(lzma_block *block,
// are invalid or over 63 bits, or if the header is too small // are invalid or over 63 bits, or if the header is too small
// to contain the claimed information. // to contain the claimed information.
// Catch unexpected NULL pointers.
if (block == NULL || block->filters == NULL || in == NULL)
return LZMA_PROG_ERROR;
// Initialize the filter options array. This way the caller can // Initialize the filter options array. This way the caller can
// safely free() the options even if an error occurs in this function. // safely free() the options even if an error occurs in this function.
for (size_t i = 0; i <= LZMA_FILTERS_MAX; ++i) { for (size_t i = 0; i <= LZMA_FILTERS_MAX; ++i) {