diff --git a/icu4c/source/i18n/colldata.cpp b/icu4c/source/i18n/colldata.cpp index 69ea3043cd9..6d73aeacc40 100644 --- a/icu4c/source/i18n/colldata.cpp +++ b/icu4c/source/i18n/colldata.cpp @@ -234,10 +234,14 @@ void StringList::add(const UnicodeString *string, UErrorCode &status) if (listSize >= listMax) { int32_t newMax = listMax + STRING_LIST_BUFFER_SIZE; - UnicodeString *newStrings = new UnicodeString[newMax]; - - uprv_memcpy(newStrings, strings, listSize * sizeof(UnicodeString)); + if (newStrings == NULL) { + status = U_MEMORY_ALLOCATION_ERROR; + return; + } + for (int32_t i=0; i