From 508a44372c5b0dede8863fd0d358d4a9d8645c95 Mon Sep 17 00:00:00 2001 From: Lasse Collin Date: Fri, 30 Sep 2022 12:06:13 +0300 Subject: [PATCH] liblzma: Add API doc note about the .xz decoder LZMA_MEMLIMIT_ERROR bug. The bug was fixed in 660739f99ab211edec4071de98889fb32ed04e98. --- src/liblzma/api/lzma/base.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/liblzma/api/lzma/base.h b/src/liblzma/api/lzma/base.h index 749e4fe7..ff2d8696 100644 --- a/src/liblzma/api/lzma/base.h +++ b/src/liblzma/api/lzma/base.h @@ -145,6 +145,12 @@ typedef enum { * specified memory usage limit. To continue decoding, * the memory usage limit has to be increased with * lzma_memlimit_set(). + * + * liblzma 5.2.6 and earlier had a bug in single-threaded .xz + * decoder (lzma_stream_decoder()) which made it impossible + * to continue decoding after LZMA_MEMLIMIT_ERROR even if + * the limit was increased using lzma_memlimit_set(). + * Other decoders worked correctly. */ LZMA_FORMAT_ERROR = 7, @@ -691,6 +697,11 @@ extern LZMA_API(uint64_t) lzma_memlimit_get(const lzma_stream *strm) * return LZMA_OK. Later versions treat 0 as if 1 had been specified (so * lzma_memlimit_get() will return 1 even if you specify 0 here). * + * liblzma 5.2.6 and earlier had a bug in single-threaded .xz decoder + * (lzma_stream_decoder()) which made it impossible to continue decoding + * after LZMA_MEMLIMIT_ERROR even if the limit was increased using + * lzma_memlimit_set(). Other decoders worked correctly. + * * \return - LZMA_OK: New memory usage limit successfully set. * - LZMA_MEMLIMIT_ERROR: The new limit is too small. * The limit was not changed.