ICU-20034 ICU4C the Locale class's assignment operator should set the locale to "bogus" if an OOM error occurs when attempting to copy data over from the other locale.
Also need to check strdup, as that calls malloc and it can fail too.
if(other.fullName != other.fullNameBuffer) {
fullName = (char *)uprv_malloc(sizeof(char)*(uprv_strlen(other.fullName)+1));
if (fullName == NULL) {
+ // if memory allocation fails, set this object to bogus.
+ fIsBogus = TRUE;
return *this;
}
}
} else {
if (other.baseName) {
baseName = uprv_strdup(other.baseName);
+ if (baseName == nullptr) {
+ // if memory allocation fails, set this object to bogus.
+ fIsBogus = TRUE;
+ return *this;
+ }
}
}