summaryrefslogtreecommitdiff
path: root/ssflib/src/ssf_storage.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'ssflib/src/ssf_storage.cpp')
-rw-r--r--ssflib/src/ssf_storage.cpp11
1 files changed, 10 insertions, 1 deletions
diff --git a/ssflib/src/ssf_storage.cpp b/ssflib/src/ssf_storage.cpp
index fce2d51..44369ae 100644
--- a/ssflib/src/ssf_storage.cpp
+++ b/ssflib/src/ssf_storage.cpp
@@ -1792,6 +1792,10 @@ TEE_Result TEE_CreatePersistentObject(uint32_t storageID, const void* objectID,
const void* initialData, size_t initialDataLen, TEE_ObjectHandle* object) {
PERMISSION_CHECK(PERM_STORAGE);
persistent_object* po = NULL;
+
+ if (object)
+ *object = TEE_HANDLE_NULL;
+
TEE_Result rc = allocate_persistent_object(&po, storageID, objectID,
objectIDLen, flags);
TransientObject* tr_obj = NULL;
@@ -1830,6 +1834,10 @@ TEE_Result TEE_OpenPersistentObject(uint32_t storageID, const void* objectID,
size_t objectIDLen, uint32_t flags, TEE_ObjectHandle* object) {
PERMISSION_CHECK(PERM_STORAGE);
persistent_object* po = NULL;
+
+ if (object)
+ *object = TEE_HANDLE_NULL;
+
TEE_Result rc = allocate_persistent_object(&po, storageID, objectID,
objectIDLen, flags);
if (rc) {
@@ -1840,7 +1848,8 @@ TEE_Result TEE_OpenPersistentObject(uint32_t storageID, const void* objectID,
FREE_PO(po);
return rc;
}
- *object = (TEE_ObjectHandle)&po->attr.info;
+ if (object)
+ *object = (TEE_ObjectHandle)&po->attr.info;
return TEE_SUCCESS;
}