diff options
author | Xin Li <delphij@google.com> | 2021-10-06 22:53:10 +0000 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2021-10-06 22:53:10 +0000 |
commit | 808b94ded1e6315101bd98750fa997467a5aa226 (patch) | |
tree | a7b0c82cc4b342d22a22e671d64980a5384e3949 | |
parent | b0c9795e040ef73f9d2cf5b44a104dd99d531644 (diff) | |
parent | 3d50375056638a74ee9bce3b2e2e10ee8f3a9442 (diff) | |
download | libcppbor-808b94ded1e6315101bd98750fa997467a5aa226.tar.gz |
Merge Android 12android-s-v2-preview-2android-s-v2-preview-1android-s-v2-beta-2android-s-v2-preview-1
Bug: 202323961
Merged-In: I924b3ddd6fd350227c02d9a15857de5102311a32
Change-Id: I4da905f9e98fe1fe675a24a859939a9fcdcdde73
-rw-r--r-- | src/cppbor_parse.cpp | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/cppbor_parse.cpp b/src/cppbor_parse.cpp index f5e8fcf..964a72d 100644 --- a/src/cppbor_parse.cpp +++ b/src/cppbor_parse.cpp @@ -96,7 +96,8 @@ std::tuple<const uint8_t*, ParseClient*> handleString(uint64_t length, const uin const uint8_t* valueBegin, const uint8_t* end, const std::string& errLabel, ParseClient* parseClient) { - if (end - valueBegin < static_cast<ssize_t>(length)) { + ssize_t signed_length = static_cast<ssize_t>(length); + if (end - valueBegin < signed_length || signed_length < 0) { parseClient->error(hdrBegin, insufficientLengthString(length, end - valueBegin, errLabel)); return {hdrBegin, nullptr /* end parsing */}; } |