Skip to content

Commit 151ede0

Browse files
etienne-lmsjforissier
authored andcommitted
aes: TEE_Free*() functions support null handle argument
Update the implementation since TEE_FreeOperation() and TEE_FreeTransientObject() supports argument TEE_HANDLE_NULL as per the GlobalPlatform TEE Internal Core API specification. This change better shows good practices to new comers. Signed-off-by: Etienne Carriere <etienne.carriere@st.com> Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
1 parent a090390 commit 151ede0

File tree

1 file changed

+7
-13
lines changed

1 file changed

+7
-13
lines changed

aes/ta/aes_ta.c

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -133,8 +133,7 @@ static TEE_Result alloc_resources(void *session, uint32_t param_types,
133133
*/
134134

135135
/* Free potential previous operation */
136-
if (sess->op_handle != TEE_HANDLE_NULL)
137-
TEE_FreeOperation(sess->op_handle);
136+
TEE_FreeOperation(sess->op_handle);
138137

139138
/* Allocate operation: AES/CTR, mode and size from params */
140139
res = TEE_AllocateOperation(&sess->op_handle,
@@ -148,8 +147,7 @@ static TEE_Result alloc_resources(void *session, uint32_t param_types,
148147
}
149148

150149
/* Free potential previous transient object */
151-
if (sess->key_handle != TEE_HANDLE_NULL)
152-
TEE_FreeTransientObject(sess->key_handle);
150+
TEE_FreeTransientObject(sess->key_handle);
153151

154152
/* Allocate transient object according to target key size */
155153
res = TEE_AllocateTransientObject(TEE_TYPE_AES,
@@ -194,12 +192,10 @@ static TEE_Result alloc_resources(void *session, uint32_t param_types,
194192
return res;
195193

196194
err:
197-
if (sess->op_handle != TEE_HANDLE_NULL)
198-
TEE_FreeOperation(sess->op_handle);
195+
TEE_FreeOperation(sess->op_handle);
199196
sess->op_handle = TEE_HANDLE_NULL;
200197

201-
if (sess->key_handle != TEE_HANDLE_NULL)
202-
TEE_FreeTransientObject(sess->key_handle);
198+
TEE_FreeTransientObject(sess->key_handle);
203199
sess->key_handle = TEE_HANDLE_NULL;
204200

205201
return res;
@@ -490,11 +486,9 @@ void TA_CloseSessionEntryPoint(void *session)
490486
DMSG("Session %p: release session", session);
491487
sess = (struct aes_cipher *)session;
492488

493-
/* Release the session resources */
494-
if (sess->key_handle != TEE_HANDLE_NULL)
495-
TEE_FreeTransientObject(sess->key_handle);
496-
if (sess->op_handle != TEE_HANDLE_NULL)
497-
TEE_FreeOperation(sess->op_handle);
489+
/* Release all remaining session resources */
490+
TEE_FreeTransientObject(sess->key_handle);
491+
TEE_FreeOperation(sess->op_handle);
498492
TEE_Free(sess);
499493
}
500494

0 commit comments

Comments
 (0)