* Added: bz3_memory_needed API.
* Added: bz3_decode_block_bound
* Renamed: bz3_decode_bound -> bz3_decode_block_bound in documentation
* Updated: libbz3.h to specify that it is a frame that is being compressed here.
* Reworked how the fuzzer script works. Can now generate its own input for easier debugging.
* Added: Multithreading to fuzz tutorial.
* Added: 010editor template for fuzzer input.
* Improved: Ignore the AFL Input/Outputs in .gitignore
* Added a note saying `afl-whatsup` is not realtime.
* Fixed: Variable name in embedded hex editor script.
* Added: Note on where to find crashing test case :3
* Added: Integration for bz3_decode_block_bound in bz3_decode_block
* Added: Guide for fuzzing with address sanitizer.
* Fixed: Wrong branch in binary template of fuzz.c
* Improved: Description in bz3_decode_block_bound
* Revert: data_size should not compare with bz3_decode_block_bound
* Removed: `bz3_decode_block_bound` API.
* Added: BZ3_ERR_DATA_SIZE_TOO_SMALL when bz3_decode_block is called with insufficient buffer.
* Implemented: Additional bounds checks in `bz3_decode_block` and `bz3_orig_size_sufficient_for_decode` API
* Adjusted: Old fuzz script now named fuzz-decompress. Enforce includes from local files, not system.
* Fixed: Bad quote usage in bz3_decode_block
* Added: Standard fuzzer inputs.
* Fixed: fuzz failures in decode_block and added a new fuzzer script for block decodes
* Added: Sanity check that the user provided a valid compressed data size to bz3_decode_block
* Changed: bz3_memory_needed -> bz3_min_memory_needed
* Added: Round Trip Fuzzer
* Fixed: Possible out of bounds read in `lzp_decode_block`. Mark exit branches as unlikely.
* Update comment
---------
Co-authored-by: Kamila Szewczyk <27734421+kspalaiologos@users.noreply.github.com>
* incorporate lzp & crc32 to libbz3.c
* merge rle & ac into libbz3
* libsais: make a header-only amalgamate
* hide the AC symbols
* whitespace fixes
* conservative fix for #47
Prioritise our `restrict` detection mechanism over anything autoconf has to offer, meaning that source code in common.h won't be changed, but also define plain `restrict` as fallback for the undetected case.
* PUBLIC_API clarification