fix: the lzma decoder seems to always fail with a memory error #1873
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem description
I was unable to use the LZMA de-compressor even though 7zip was able to identify them as LZMA compressed and decompress them without a problem. Under the debugger the
lzma_code()
call was returningLZMA_MEMLIMIT_ERROR
.Implementation description
I found online that the error can be fixed using
lzma_memlimit_set()
using a value obtained withlzma_memusage()
. I tried to avoid having to calllzma_code()
twice but if the functions are called before the firstlzma_code()
the values of memory obtained fall short and error occurs again.I suspect that there are better ways to deal with this other than the code proposed in this PR, but I haven't been able to find any.