memcpy(&sdata.uuid, &data.destination, sizeof(TEEC_UUID));
result = checkTADomain(data);
+
if (TEEC_SUCCESS != result) {
data.returnValue = result;
}
TEEC_Result TEEContext::checkTADomain(IntTAOpenSessionData data) {
- TEEC_Result result = TEEC_ERROR_GENERIC;
+ TEEC_Result result = TEEC_ERROR_ACCESS_DENIED;
LOGD(SIM_DAEMON, "Entry");
dstTAManifest = TABin->getManifest(dest_uuid);
srcTAManifest = TABin->getManifest(source_uuid);
+ if(srcTAManifest == NULL || dstTAManifest == NULL) {
+ LOGE(SIM_DAEMON, "Can`t find TA Manifest - source_uuid(%s), destination_uuid(%s)", source_uuid.c_str(), dest_uuid.c_str());
+ return TEEC_ERROR_ACCESS_DENIED;
+ }
+
srcCreateDomain = srcTAManifest->policy.protectionDomain.createDomain;
dstAllowedDomainCount = dstTAManifest->policy.protectionDomain.allowedDomain.size();