From: Jakub Wlostowski Date: Tue, 17 Dec 2024 15:26:38 +0000 (+0100) Subject: Fix TEE_CreatePersistentObject failure X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=refs%2Fheads%2Ftizen;p=platform%2Fcore%2Fsecurity%2Ftef-simulator.git Fix TEE_CreatePersistentObject failure Running UPDATE_API_BENCHMARKS from key-manager multiple times resulted in crashes and tests fails. To fix this we need to check whether a persistent object already exists, if it does we need to free it and only then create a new one. Change-Id: I9d6de16194e034bc1d65d0e95b193cf9a2a717cb --- diff --git a/ssflib/src/ssf_storage.cpp b/ssflib/src/ssf_storage.cpp index 01d4cce..24a2915 100644 --- a/ssflib/src/ssf_storage.cpp +++ b/ssflib/src/ssf_storage.cpp @@ -2025,9 +2025,12 @@ TEE_Result TEE_CreatePersistentObject(uint32_t storageID, const void* objectID, FREE_PO(po); return TEE_ERROR_ACCESS_CONFLICT; } - if (!object) { - FREE_PO(po); - return TEE_SUCCESS; + + free_po(po); + rc = allocate_persistent_object(&po, storageID, objectID, + objectIDLen, flags); + if (rc) { + return rc; } } rc = create_po(po, tr_obj, initialData, initialDataLen);