Catch more allocation failure cases

Bug: 216213939
Bug: 215451239
Test: VtsAidlKeyMintTargetTest
Ignore-AOSP-First: Cherry pick from AOSP
Change-Id: I604c980dba7644e4012a358b6f2dc204cb215c3c
(cherry picked from commit 01d2e13c563a82e5cb0dc1adacd0ca5b41322497)
diff --git a/ng/AndroidRemotelyProvisionedComponentDevice.cpp b/ng/AndroidRemotelyProvisionedComponentDevice.cpp
index 0c2d842..54ea70c 100644
--- a/ng/AndroidRemotelyProvisionedComponentDevice.cpp
+++ b/ng/AndroidRemotelyProvisionedComponentDevice.cpp
@@ -113,6 +113,9 @@
     request.test_mode = testMode;
     request.num_keys = keysToSign.size();
     request.keys_to_sign_array = new (std::nothrow) KeymasterBlob[keysToSign.size()];
+    if (request.keys_to_sign_array == nullptr) {
+        return km_utils::kmError2ScopedAStatus(KM_ERROR_MEMORY_ALLOCATION_FAILED);
+    }
     for (size_t i = 0; i < keysToSign.size(); i++) {
         request.SetKeyToSign(i, keysToSign[i].macedKey.data(), keysToSign[i].macedKey.size());
     }