aboutsummaryrefslogtreecommitdiff
path: root/src/liblzma/common/alone_decoder.c (follow)
AgeCommit message (Collapse)AuthorFilesLines
2022-07-24liblzma: Add optional autodetection of LZMA end marker.Lasse Collin1-1/+1
Turns out that this is needed for .lzma files as the spec in LZMA SDK says that end marker may be present even if the size is stored in the header. Such files are rare but exist in the real world. The code in liblzma is so old that the spec didn't exist in LZMA SDK back then and I had understood that such files weren't possible (the lzma tool in LZMA SDK didn't create such files). This modifies the internal API so that LZMA decoder can be told if EOPM is allowed even when the uncompressed size is known. It's allowed with .lzma and not with other uses. Thanks to Karl Beldan for reporting the problem.
2019-12-31liblzma: Remove incorrect uses of lzma_attribute((__unused__)).Lasse Collin1-2/+1
Caught by clang -Wused-but-marked-unused.
2017-03-30liblzma: Similar memlimit fix for stream_, alone_, and auto_decoder.Lasse Collin1-4/+1
2016-12-28liblzma: Avoid multiple definitions of lzma_coder structures.Lasse Collin1-18/+26
Only one definition was visible in a translation unit. It avoided a few casts and temp variables but seems that this hack doesn't work with link-time optimizations in compilers as it's not C99/C11 compliant. Fixes: http://www.mail-archive.com/xz-devel@tukaani.org/msg00279.html
2013-03-23liblzma: Be less picky in lzma_alone_decoder().Lasse Collin1-8/+14
To avoid false positives when detecting .lzma files, rare values in dictionary size and uncompressed size fields were rejected. They will still be rejected if .lzma files are decoded with lzma_auto_decoder(), but when using lzma_alone_decoder() directly, such files will now be accepted. Hopefully this is an OK compromise. This doesn't affect xz because xz still has its own file format detection code. This does affect lzmadec though. So after this commit lzmadec will accept files that xz or xz-emulating-lzma doesn't. NOTE: lzma_alone_decoder() still won't decode all .lzma files because liblzma's LZMA decoder doesn't support lc + lp > 4. Reported here: http://sourceforge.net/projects/lzmautils/forums/forum/708858/topic/7068827
2012-07-17liblzma: Make the use of lzma_allocator const-correct.Lasse Collin1-3/+3
There is a tiny risk of causing breakage: If an application assigns lzma_stream.allocator to a non-const pointer, such code won't compile anymore. I don't know why anyone would do such a thing though, so in practice this shouldn't cause trouble. Thanks to Jan Kratochvil for the patch.
2011-05-17Add underscores to attributes (__attribute((__foo__))).Lasse Collin1-1/+1
2010-01-01Fix _memconfig() functions.Lasse Collin1-4/+7
This affects lzma_memusage() and lzma_memlimit_get().
2009-04-28Fixed a crash in liblzma.Lasse Collin1-1/+1
liblzma tries to avoid useless free()/malloc() pairs in initialization when multiple files are handled using the same lzma_stream. This didn't work with filter chains due to comparison of wrong pointers in lzma_next_coder_init(), making liblzma think that no memory reallocation is needed even when it actually is. Easy way to trigger this bug is to decompress two files with a single xz command. The first file should have e.g. x86+LZMA2 as the filter chain, and the second file just LZMA2.
2009-04-13Put the interesting parts of XZ Utils into the public domain.Lasse Collin1-10/+3
Some minor documentation cleanups were made at the same time.
2009-02-02Modify LZMA_API macro so that it works on Windows withLasse Collin1-1/+1
other compilers than MinGW. This may hurt readability of the API headers slightly, but I don't know any better way to do this.
2009-01-28Fix uninitialized variables in alone_decoder.c. This bug wasLasse Collin1-0/+2
triggered by the previous commit, since these variables were not used by anything before support for a preset dictionary.
2008-12-27Bunch of liblzma tweaks, including some API changes.Lasse Collin1-18/+18
The API and ABI should now be very close to stable, although the code behind it isn't yet.
2008-12-15Fix a dumb bug in .lzma decoder which was introduced inLasse Collin1-15/+14
the previous commit. (Probably the previous commit has other bugs too, it wasn't tested.)
2008-12-15Bunch of liblzma API cleanups and fixes.Lasse Collin1-15/+32
2008-09-27Some API changes, bug fixes, cleanups etc.Lasse Collin1-6/+5
2008-09-13Renamed constants:Lasse Collin1-1/+1
- LZMA_VLI_VALUE_MAX -> LZMA_VLI_MAX - LZMA_VLI_VALUE_UNKNOWN -> LZMA_VLI_UNKNOWN - LZMA_HEADER_ERRRO -> LZMA_OPTIONS_ERROR
2008-09-04Don't allow LZMA_SYNC_FLUSH with decoders anymore. There'sLasse Collin1-1/+0
simply nothing that would use it. Allow LZMA_FINISH to the decoders, which will usually ignore it (auto decoder and Stream decoder being exceptions).
2008-08-28Sort of garbage collection commit. :-| Many things are stillLasse Collin1-18/+31
broken. API has changed a lot and it will still change a little more here and there. The command line tool doesn't have all the required changes to reflect the API changes, so it's easy to get "internal error" or trigger assertions.
2008-06-18Update the code to mostly match the new simpler file formatLasse Collin1-34/+43
specification. Simplify things by removing most of the support for known uncompressed size in most places. There are some miscellaneous changes here and there too. The API of liblzma has got many changes and still some more will be done soon. While most of the code has been updated, some things are not fixed (the command line tool will choke with invalid filter chain, if nothing else). Subblock filter is somewhat broken for now. It will be updated once the encoded format of the Subblock filter has been decided.
2008-01-16Make Uncompresed Size validation more strictLasse Collin1-1/+2
in alone_decoder.c.
2007-12-09Imported to git.Lasse Collin1-0/+197