18 lines
616 B
Diff
18 lines
616 B
Diff
diff --git a/deps/icu-small/source/common/unistr.cpp b/deps/icu-small/source/common/unistr.cpp
|
|
index eeb0c3a..1c59de9 100644
|
|
--- a/deps/icu-small/source/common/unistr.cpp
|
|
+++ b/deps/icu-small/source/common/unistr.cpp
|
|
@@ -1563,7 +1563,11 @@ UnicodeString::doAppend(const UChar *srcChars, int32_t srcStart, int32_t srcLeng
|
|
}
|
|
|
|
int32_t oldLength = length();
|
|
- int32_t newLength = oldLength + srcLength;
|
|
+ int32_t newLength;
|
|
+ if (uprv_add32_overflow(oldLength, srcLength, &newLength)) {
|
|
+ setToBogus();
|
|
+ return *this;
|
|
+ }
|
|
|
|
// Check for append onto ourself
|
|
const UChar* oldArray = getArrayStart();
|