memset(tmpSharedMem, 0x0, sizeof(tmpSharedMem));
+ // Set returnOrigin
+ if (returnOrigin) {
+ *returnOrigin = TEEC_ORIGIN_API;
+ }
+
// Check if the context, session and UUID is valid
if (!session || !context || !destination) {
LOGE(TEEC_LIB, "Invalid input parameters");
*/
memset(&os, 0x00, sizeof(OpenSessionData));
memset(&op, 0x00, sizeof(OperationData));
-
- // Set returnOrigin
- if (returnOrigin) {
- *returnOrigin = TEEC_ORIGIN_API;
- os.returnOrigin = *returnOrigin;
- } else os.returnOrigin = 0x00;
+ os.returnOrigin = TEEC_ORIGIN_API;
// Update Context ID
os.contextID = context_imp->contextID;
// If param. type is of memory reference type then allocate shared memory
bool sharedResult = true;
TOGGLE_PROPERTY_ACCESS;
+ data.returnOrigin = TEE_ORIGIN_TEE;
sharedResult = SharedMemoryMap::allocateSharedMemory(data.op);
if (sharedResult) {
+ data.returnOrigin = TEE_ORIGIN_TRUSTED_APP;
data.returnValue = TA_OpenSessionEntryPoint(data.op.paramTypes,
data.op.params, &sessionContext);
LOGD(TEE_STUB, "TA_OpenSessionEntryPoint done");
} else {
- data.returnOrigin = TEE_ORIGIN_TRUSTED_APP;
data.returnValue = TEE_ERROR_OUT_OF_MEMORY;
}
sharedResult = SharedMemoryMap::deleteSharedMemory(data.op);
if (!sharedResult) {
- data.returnOrigin = TEE_ORIGIN_TRUSTED_APP;
- data.returnValue = TEE_ERROR_OUT_OF_MEMORY;
+ LOGE(TEE_STUB, "deleteSharedMemory failed");
}
TOGGLE_PROPERTY_ACCESS;
return data.returnValue;