-
Notifications
You must be signed in to change notification settings - Fork 97
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
2^-14 fails to serialize on little-endian systems #11
Labels
Milestone
Comments
This may mean you can't encode any half-float between 0 and 0.5. |
dgrigsby
pushed a commit
to dgrigsby/libcbor
that referenced
this issue
Dec 17, 2015
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
From here: http://tools.ietf.org/html/rfc7049#appendix-A
There is this example:
0.00006103515625 -> 0xf90400
It turns out the left hand side is 2^-14.
Using libcbor 0.3.1 on XCode simulator (little-endian), cbor_serialize_alloc fails after cbor_build_float2 for the provided number.
Actually it appears to get into an endless loop until aborted by an illegal malloc request.
Here's a function that demonstrates the issue:
{
cbor_item_t* pItem = cbor_build_float2(0.00006103515625);
unsigned char* buffer;
size_t buffer_size, length = cbor_serialize_alloc(pItem, &buffer, &buffer_size);
XCTAssert(length);
}
Attached is an image showing my test program and the results.
The text was updated successfully, but these errors were encountered: