diff options
-rw-r--r-- | ssflib/src/ssf_storage.cpp | 11 |
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; } |