Commit f86e2850 authored by Daniel Friesel's avatar Daniel Friesel
Browse files

decrease recommended file size to 32kB to avoid signed overflows

parent 39d1d2e2
Loading
Loading
Loading
Loading
+7 −6
Original line number Original line Diff line number Diff line
@@ -86,18 +86,19 @@ checksum in `inflate_zlib`.
## Compliance
## Compliance


`inflate` is fully compliant with RFC 1951 for data with a decompressed size
`inflate` is fully compliant with RFC 1951 for data with a decompressed size
of up to 65 kB.
of up to 32 kB.


When compiled with `-DDEFLATE_CHECKSUM`, `inflate_zlib` is fully compliant with
When compiled with `-DDEFLATE_CHECKSUM`, `inflate_zlib` is fully compliant with
RFC 1950 (decompression only) for data with a decompressed size of up to 65 kB.
RFC 1950 (decompression only) for data with a decompressed size of up to 32 kB.
By default (without `-DDEFLATE_CHECKSUM`), it does not verify the ADLER32
By default (without `-DDEFLATE_CHECKSUM`), it does not verify the ADLER32
checksum embedded into zlib-compressed data and is therefore not compliant with
checksum embedded into zlib-compressed data and is therefore not compliant with
RFC 1950.
RFC 1950.


For files larger than 65 kB, you only need to change some size arguments to
For files larger than 32 kB, you need to change inflate's return value to
`uint32_t`. However, if you are decompressing files of that size, you probably
`int32_t` and its size arguments to `uint32_t`. However, if you are
have more RAM than this library is designed for. In that case, you may be
decompressing files of that size, you probably have more RAM than this library
better off with [udeflate](https://github.com/jlublin/udeflate),
is designed for. In that case, you are probably better off with
[udeflate](https://github.com/jlublin/udeflate),
[uzlib](https://github.com/pfalcon/uzlib), or similar.
[uzlib](https://github.com/pfalcon/uzlib), or similar.


## Memory Requirements
## Memory Requirements
+1 −1
Original line number Original line Diff line number Diff line
@@ -6,7 +6,7 @@ cd "$(dirname "$0")"


./compile.sh
./compile.sh


for file in $(find .. -type f -size -65000c); do
for file in $(find .. -type f -size -32760c); do
	if ! ./deflate $file | ./inflate > tmp; then
	if ! ./deflate $file | ./inflate > tmp; then
		echo "inflate error at $file"
		echo "inflate error at $file"
		./deflate $file | ./inflate > tmp
		./deflate $file | ./inflate > tmp