]> git.ipfire.org Git - thirdparty/xz.git/commitdiff
liblzma: Check for unexpected NULL pointers in block_header_decode().
authorLasse Collin <lasse.collin@tukaani.org>
Thu, 8 Dec 2022 15:30:09 +0000 (17:30 +0200)
committerLasse Collin <lasse.collin@tukaani.org>
Mon, 12 Dec 2022 13:47:17 +0000 (15:47 +0200)
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.

src/liblzma/common/block_header_decoder.c

index 2e1135dd639a6f30fa7c83d2c26cdaeb765783f3..060479b468b07bdd970548768cee376e40eb132f 100644 (file)
@@ -39,6 +39,10 @@ lzma_block_header_decode(lzma_block *block,
        // are invalid or over 63 bits, or if the header is too small
        // 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
        // safely free() the options even if an error occurs in this function.
        for (size_t i = 0; i <= LZMA_FILTERS_MAX; ++i) {