Fix integer cast in handleNint
This fixes an incorrect integer cast in the handleNint function
in cppbor_parse.cpp which would trigger UBSAN failures in the
Trusty apploader.
Change-Id: Id35865e524c9837d907fe352feac783b3f7f36b0
diff --git a/src/cppbor_parse.cpp b/src/cppbor_parse.cpp
index ab01ee7..f5e8fcf 100644
--- a/src/cppbor_parse.cpp
+++ b/src/cppbor_parse.cpp
@@ -71,7 +71,7 @@
parseClient->error(hdrBegin, "NINT values that don't fit in int64_t are not supported.");
return {hdrBegin, nullptr /* end parsing */};
}
- std::unique_ptr<Item> item = std::make_unique<Nint>(-1 - static_cast<uint64_t>(value));
+ std::unique_ptr<Item> item = std::make_unique<Nint>(-1 - static_cast<int64_t>(value));
return {hdrEnd,
parseClient->item(item, hdrBegin, hdrEnd /* valueBegin */, hdrEnd /* itemEnd */)};
}