TinyCBOR release 0.4.1

This is a bug-fix release. There is no new functionality on top of
v0.4.

Bugs fixed:
 - #54 Failure to build with newest cJSON upstream
 - Stack corruption when memcpy doesn't use the same calling convention
 - Warnings with GCC -pedantic in cbor.h
 - a number of buildsystem bugs

Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
Fix stack corruption due to calling convention mismatch

Standard library implementations may specify calling convention for memcpy
explicitly. However, the cbor* APIs don't do that. If you compile the lib
with default calling convention that doesn't match the calling convention o
memcpy(), the iterate_string_chunks() will not setup the stack for memcpy()
call correctly resulting in a stack corruption. The compiler doesn't catch
this issue because of the cast that is being applied when passing memcpy()
to the iterate_string_chunks().

The fix is to wrap memcpy() in a function that conforms to the declaration o
the IterateFunction which does two things, removes the need for a cast and
uncouples memcpy() calling convention from the rest of the cbor* APIs.

Signed-off-by: Alex Radutskiy (alex.radutskiy@microsoft.com)
Signed-off-by: Thiago Macieira <thiago.macieira@intel.com>
1 file changed