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