Properly initialize object handles 72/304572/1
authorKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Fri, 19 Jan 2024 13:33:08 +0000 (14:33 +0100)
committerKrzysztof Jackiewicz <k.jackiewicz@samsung.com>
Fri, 19 Jan 2024 13:38:40 +0000 (14:38 +0100)
Withouth it the TA may crash in TEE_CloseObject

Change-Id: I35d9c33ad09af795a691d1095cf5ef5ad33e5cb3

ta/src/internal.c

index d292132435ca9162766112fd32473042f813aa51..9869635e50f38a52bd08c22bd29f5316143cca5b 100644 (file)
@@ -680,7 +680,7 @@ static TEE_Result KM_DecryptAsymKeyData(const KM_BinaryData *id,
                                                                                KM_BinaryData *decKeyBuf)
 {
        TEE_Result ret;
-       TEE_ObjectHandle hndl;
+       TEE_ObjectHandle hndl = TEE_HANDLE_NULL;
        TEE_ObjectInfo info;
        KM_BinaryData keyBuf, tmpDecKeyBuf;
        uint32_t read;
@@ -989,7 +989,7 @@ TEE_Result KM_DecryptKey(void *id, size_t id_size, KM_PwdData* pwd,
 {
        TEE_Result ret = TEE_SUCCESS;
        TEE_ObjectInfo objInfo;
-       TEE_ObjectHandle objHandle;
+       TEE_ObjectHandle objHandle = TEE_HANDLE_NULL;
        void* keyBuf = NULL;
        uint32_t keyBufSize = 0;
        void* decKeyBuf = NULL;
@@ -1196,7 +1196,7 @@ TEE_Result KM_SaveKey(void *data, size_t data_size, TEE_ObjectHandle key, void *
                                                size_t objId_size)
 {
        TEE_Result ret = TEE_SUCCESS;
-       TEE_ObjectHandle pers_handl;
+       TEE_ObjectHandle pers_handl = TEE_HANDLE_NULL;
        uint32_t flags =
                                TEE_DATA_FLAG_ACCESS_READ | TEE_DATA_FLAG_ACCESS_WRITE | TEE_DATA_FLAG_OVERWRITE;
 
@@ -1228,7 +1228,7 @@ TEE_Result KM_OpenKey(void *objId, size_t objId_size, TEE_ObjectHandle *hndl)
 void KM_DestroyKey(void *objId, uint32_t objId_size)
 {
        TEE_Result ret = TEE_SUCCESS;
-       TEE_ObjectHandle key;
+       TEE_ObjectHandle key = TEE_HANDLE_NULL;
 
        // open the object to check if it exists
        ret = TEE_OpenPersistentObject(TEE_STORAGE_PRIVATE, objId, objId_size,
@@ -1254,7 +1254,7 @@ void KM_GenerateIV(void *iv, uint32_t iv_size)
 TEE_Result KM_SaveData(void *data, uint32_t data_size, void *objId, uint32_t objId_size)
 {
        TEE_Result ret = TEE_SUCCESS;
-       TEE_ObjectHandle handl;
+       TEE_ObjectHandle handl = TEE_HANDLE_NULL;
        uint32_t flags = TEE_DATA_FLAG_ACCESS_READ | TEE_DATA_FLAG_ACCESS_WRITE | TEE_DATA_FLAG_OVERWRITE;
 
        ret = TEE_CreatePersistentObject(TEE_STORAGE_PRIVATE, objId, objId_size, flags,
@@ -1361,7 +1361,7 @@ TEE_Result KM_GetDataSize(uint32_t *data_size, KM_BinaryData *obj_id,
 {
        TEE_Result ret = TEE_SUCCESS;
        uint32_t flags = TEE_DATA_FLAG_ACCESS_READ;
-       TEE_ObjectHandle hndl;
+       TEE_ObjectHandle hndl = TEE_HANDLE_NULL;
        TEE_ObjectInfo info;
        KM_BinaryData der = {0, NULL};
 
@@ -1412,7 +1412,7 @@ clean:
 void KM_DestroyData(void *objId, uint32_t objId_size)
 {
        TEE_Result ret = TEE_SUCCESS;
-       TEE_ObjectHandle handl;
+       TEE_ObjectHandle handl = TEE_HANDLE_NULL;
 
        // open the object to check if it exists
        ret = TEE_OpenPersistentObject(TEE_STORAGE_PRIVATE, objId, objId_size,