Commit d31b4739 for xz

commit d31b473917a4270f5bb00fbf52598d4f3c143f7c
Author: Lasse Collin <lasse.collin@tukaani.org>
Date:   Sun Aug 9 16:11:03 2026 +0300

    liblzma: index.c: Define STREAMS_MAX

diff --git a/src/liblzma/common/index.c b/src/liblzma/common/index.c
index ae2e2b4e..099f21d7 100644
--- a/src/liblzma/common/index.c
+++ b/src/liblzma/common/index.c
@@ -14,6 +14,14 @@
 #include "stream_flags_common.h"


+/// \brief      Maximum number of Streams supported in lzma_index
+///
+/// The maximum number of Streams is UINT32_MAX, because index_tree.count
+/// is uint32_t. This is unlikely to be reached in practice because it
+/// would require allocating hundreds of gigabytes of memory.
+#define STREAMS_MAX UINT32_MAX
+
+
 /// \brief      How many Records to allocate at once
 ///
 /// This should be big enough to avoid making lots of tiny allocations
@@ -494,10 +502,8 @@ lzma_index_memusage(lzma_vli streams, lzma_vli blocks)
 	const uint64_t index_base = sizeof(lzma_index) + alloc_overhead;

 	// Validate the arguments and catch integer overflows.
-	// Maximum number of Streams is "only" UINT32_MAX, because
-	// that limit is used by the tree containing the Streams.
 	const uint64_t limit = UINT64_MAX - index_base;
-	if (streams == 0 || streams > UINT32_MAX || blocks > LZMA_VLI_MAX
+	if (streams == 0 || streams > STREAMS_MAX || blocks > LZMA_VLI_MAX
 			|| streams > limit / stream_base
 			|| groups > limit / group_base
 			|| limit - streams_mem < groups_mem)