1
0
Fork 0

Merging upstream version 0.8.

Signed-off-by: Daniel Baumann <daniel@debian.org>
This commit is contained in:
Daniel Baumann 2025-02-17 22:53:16 +01:00
parent 4279a1e7bc
commit d24e3d2e19
Signed by: daniel
GPG key ID: FBB4F0E80A80222F
16 changed files with 487 additions and 362 deletions

21
README
View file

@ -4,7 +4,7 @@ Xlunzip is a test tool for the lzip decompression code of my lzip patch for
linux. Xlunzip is similar to lunzip, but it uses the lzip_decompress linux
module as a backend. Xlunzip tests the module for stream, buffer-to-buffer,
and mixed decompression modes, including in-place decompression (using the
same buffer for input and output). You can use xlunzip to verify that the
same buffer for input and output). You can use xlunzip to check that the
module produces correct results when decompressing single member files,
multimember files, or the concatenation of two or more compressed files.
Xlunzip can be used with unzcrash to test the robustness of the module to
@ -26,7 +26,7 @@ Lzip related components in the kernel
=====================================
The lzip_decompress module in lib/lzip_decompress.c provides a versatile
lzip decompression function able to do buffer to buffer decompression or
lzip decompression function able to do buffer-to-buffer decompression or
stream decompression with fill and flush callback functions. The usage of
the function is documented in include/linux/lzip.h.
@ -76,7 +76,7 @@ address | * ,'
All we need to know to calculate the minimum required extra space is:
The maximum expansion ratio.
The size of the last part of a member required to verify integrity.
The size of the last part of a member required to check integrity.
For multimember data, the overhead per member. (36 bytes for lzip).
The maximum expansion ratio of LZMA data is of about 1.4%. Rounding this up
@ -87,22 +87,21 @@ required to decompress lzip data in place is:
Using the compressed size to calculate the extra_bytes (as in the formula
above) may slightly overestimate the amount of space required in the worst
case. But calculating the extra_bytes from the uncompressed size (as does
linux currently) is wrong (and inefficient for high compression ratios). The
formula used in arch/x86/boot/header.S
case (maximum expansion). But calculating the extra_bytes from the
uncompressed size (as does linux currently) is wrong (and inefficient for
high compression ratios). The formula used in arch/x86/boot/header.S:
extra_bytes = ( uncompressed_size >> 8 ) + 65536
extra_bytes = ( uncompressed_size >> 8 ) + 131072
fails to decompress 1 MB of zeros followed by 8 MB of random data, wastes
memory for compression ratios larger than 4:1, and does not even consider
multimember data.
Copyright (C) 2016-2021 Antonio Diaz Diaz.
Copyright (C) 2016-2024 Antonio Diaz Diaz.
This file is free documentation: you have unlimited permission to copy,
distribute, and modify it.
The file Makefile.in is a data file used by configure to produce the
Makefile. It has the same copyright owner and permissions that configure
itself.
The file Makefile.in is a data file used by configure to produce the Makefile.
It has the same copyright owner and permissions that configure itself.