]> granicus.if.org Git - icu/commitdiff
ICU-21174 Add a memory allocation check in MeasureUnit.
authorHugo van der Merwe <17109322+hugovdm@users.noreply.github.com>
Thu, 6 Aug 2020 00:05:40 +0000 (02:05 +0200)
committerHugo van der Merwe <17109322+hugovdm@users.noreply.github.com>
Thu, 6 Aug 2020 11:17:34 +0000 (13:17 +0200)
icu4c/source/i18n/measunit_extra.cpp

index 773f98b1269cc77d0560f11e0731da6c7bf3d75e..0ae76b5d86f92f85f3c15040d6a82a873fcfed29 100644 (file)
@@ -861,6 +861,10 @@ LocalArray<MeasureUnit> MeasureUnit::splitToSingleUnits(int32_t& outCount, UErro
     const MeasureUnitImpl& impl = MeasureUnitImpl::forMeasureUnit(*this, temp, status);
     outCount = impl.units.length();
     MeasureUnit* arr = new MeasureUnit[outCount];
+    if (arr == nullptr) {
+        status = U_MEMORY_ALLOCATION_ERROR;
+        return LocalArray<MeasureUnit>();
+    }
     for (int32_t i = 0; i < outCount; i++) {
         arr[i] = impl.units[i]->build(status);
     }