mirror of
https://github.com/unicode-org/icu.git
synced 2025-04-11 16:03:20 +00:00
ICU-20034 ICU4C Locale assignment operator should set the locale to bogus if OOM occurs. (#14)
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.
This commit is contained in:
parent
fe9db30ca6
commit
cbaf075ac1
1 changed files with 7 additions and 0 deletions
|
@ -444,6 +444,8 @@ Locale &Locale::operator=(const Locale &other)
|
|||
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;
|
||||
}
|
||||
}
|
||||
|
@ -456,6 +458,11 @@ Locale &Locale::operator=(const Locale &other)
|
|||
} 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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue