summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/tinycbor/src/cborparser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/3rdparty/tinycbor/src/cborparser.c')
-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 |