summaryrefslogtreecommitdiffstats
path: root/src/3rdparty
diff options
context:
space:
mode:
authorThiago Macieira <thiago.macieira@intel.com>2019-04-12 21:48:40 -0700
committerKai Koehne <kai.koehne@qt.io>2019-04-25 05:22:24 +0000
commit0674c870b403e0aa2f93cce4fe432287e425e845 (patch)
tree2a4d9022d3e3b6d69b8b256878489c76d32083d5 /src/3rdparty
parenta367c85e530fde47923ff8a6e70881e69990346e (diff)
TinyCBOR: Fix parsing on big-endian machines
Original commit from https://github.com/thiagomacieira/tinycbor/pull/1 Change-Id: I194d3f37471a49788a7bfffd1594ef5db19465fd Reviewed-by: Edward Welbourne <edward.welbourne@qt.io>
Diffstat (limited to 'src/3rdparty')
-rw-r--r--src/3rdparty/tinycbor/src/cborparser.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/3rdparty/tinycbor/src/cborparser.c b/src/3rdparty/tinycbor/src/cborparser.c
index 90a7d2ced6..2019e7b808 100644
--- a/src/3rdparty/tinycbor/src/cborparser.c
+++ b/src/3rdparty/tinycbor/src/cborparser.c
@@ -203,10 +203,13 @@ static CborError preparse_value(CborValue *it)
it->extra = 0;
/* read up to 16 bits into it->extra */
- if (bytesNeeded <= 2) {
+ if (bytesNeeded == 1) {
+ uint8_t extra;
+ read_bytes_unchecked(it, &extra, 1, bytesNeeded);
+ it->extra = extra;
+ } else if (bytesNeeded == 2) {
read_bytes_unchecked(it, &it->extra, 1, bytesNeeded);
- if (bytesNeeded == 2)
- it->extra = cbor_ntohs(it->extra);
+ it->extra = cbor_ntohs(it->extra);
} else {
cbor_static_assert(CborIteratorFlag_IntegerValueTooLarge == (Value32Bit & 3));
cbor_static_assert((CborIteratorFlag_IntegerValueIs64Bit |