Releases: Cryptkeeper/libtinyfseq
v3.2.0
- Replaces mis-aligned pointer cast/dereferences with
__builtin_memcpy
calls to remove undefined behavior.
Full Changelog: v3.1.0...v3.2.0
v3.1.0
Fixes variable headers of size 0-4 being able to cause an out of bounds read.
Adds fuzzing and build coverage using CMake and GitHub Actions
v3.0.0
(Incompatible with v2.x usage, although the underlying changes are minor.)
The biggest change is new function/struct names. The snakecase has been replaced to reduce long lines of code when using the library.
Each struct has its name prefixing the function name, followed by _read. This makes a clean assocation between each type (e.g. TFHeader
and TFHeader_read
).
enum tf_err_t
-> TFError
tf_err_str
-> TFError_string
struct tf_var_header_t
-> TFVarHeader
tf_read_var_header
-> TFVarHeader_read
struct tf_file_header_t
-> TFHeader
tf_read_file_header
-> TFHeader_read
...
Ignoring the new typedefs, the struct names are mostly unchanged with the exception of struct tf_file_header_t
being shortened to struct tf_header_t
.
There were multiple errors describing undersized buffers provided to _read functions. They have been unified into a single TF_EINVALID_BUFFER_SIZE
error value.
The previously definable macro, TINYFSEQ_MEMCPY, was replaced with usage of __builtin_memcpy
.
v2.1.0
Fixes a decoding error that would result in an unexpectedly 0 struct tf_file_header_t->frameStepTimeMillis
value.
v2.0.0
Merges tinyfseq.c
& tinyfseq.h
into a single-file library in the style of std libraries.
Additional Changes
- CMake usage removed due to lack of need
- Removed
string.h
include, replaced with a basicmemcpy
function (override withTINYFSEQ_MEMCPY
) - Removed packed attributes, safer code for working with padded structures
v1.2.0
build.h
(generated using CMake via build.h.in
) has been stripped down and merged into tinyfseq.h
. This enables people to use the library by simply including tinyfseq.h
and tinyfseq.c
into their project directly.
Breaking Changes
build.h
was merged so you must remove the include, but you likely weren't including it anyways- The library version macro,
TF_VERSION
has been renamed toTF_LIB_VERSION
- The error string strip logic has been improved and is backwards compatible, but it is worth double-checking your usage against the updated documentation
v1.1.0
- Compression types (
tf_ctype_t
) are now exposed via thetf_file_header_t->compressionType
member - Improvements to the error return behavior of
tf_read_file_header
when using reading compressed files (more info in the commit) build.h
is now correctly installed when usingmake install
v1.0.1
Fixes
tf_read_uint24
incorrectly used BITAND operations instead of BITOR, resulting in corrupted return values