Skip to content

Commit 2b81588

Browse files
author
itayzafrir
committed
Add message context cleanup helper function
1 parent a446ee6 commit 2b81588

File tree

1 file changed

+32
-48
lines changed

1 file changed

+32
-48
lines changed

components/TARGET_PSA/services/crypto/COMPONENT_SPE/psa_crypto_partition.c

Lines changed: 32 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,12 @@ static inline psa_status_t get_hash_clone(size_t index, int32_t partition_id,
114114
return PSA_SUCCESS;
115115
}
116116

117+
static void free_message_context(psa_msg_t *msg)
118+
{
119+
mbedtls_free(msg->rhandle);
120+
psa_set_rhandle(msg->handle, NULL);
121+
}
122+
117123
// ------------------------- Partition's Main Thread ---------------------------
118124
static void psa_crypto_init_operation(void)
119125
{
@@ -234,8 +240,7 @@ static void psa_mac_operation(void)
234240
}
235241

236242
if (status != PSA_SUCCESS) {
237-
mbedtls_free(msg.rhandle);
238-
psa_set_rhandle(msg.handle, NULL);
243+
free_message_context(&msg);
239244
}
240245
break;
241246
}
@@ -248,8 +253,7 @@ static void psa_mac_operation(void)
248253
}
249254

250255
if (status != PSA_SUCCESS) {
251-
mbedtls_free(msg.rhandle);
252-
psa_set_rhandle(msg.handle, NULL);
256+
free_message_context(&msg);
253257
}
254258
break;
255259
}
@@ -289,8 +293,7 @@ static void psa_mac_operation(void)
289293
}
290294

291295
if (status != PSA_SUCCESS) {
292-
mbedtls_free(msg.rhandle);
293-
psa_set_rhandle(msg.handle, NULL);
296+
free_message_context(&msg);
294297
}
295298
break;
296299
}
@@ -322,8 +325,7 @@ static void psa_mac_operation(void)
322325
psa_mac_abort(msg.rhandle);
323326
}
324327

325-
mbedtls_free(msg.rhandle);
326-
psa_set_rhandle(msg.handle, NULL);
328+
free_message_context(&msg);
327329
break;
328330
}
329331

@@ -355,15 +357,13 @@ static void psa_mac_operation(void)
355357
psa_mac_abort(msg.rhandle);
356358
}
357359

358-
mbedtls_free(msg.rhandle);
359-
psa_set_rhandle(msg.handle, NULL);
360+
free_message_context(&msg);
360361
break;
361362
}
362363

363364
case PSA_MAC_ABORT: {
364365
status = psa_mac_abort(msg.rhandle);
365-
mbedtls_free(msg.rhandle);
366-
psa_set_rhandle(msg.handle, NULL);
366+
free_message_context(&msg);
367367
break;
368368
}
369369

@@ -381,7 +381,7 @@ static void psa_mac_operation(void)
381381
case PSA_IPC_DISCONNECT: {
382382
if (msg.rhandle != NULL) {
383383
psa_mac_abort(msg.rhandle);
384-
mbedtls_free(msg.rhandle);
384+
free_message_context(&msg);
385385
}
386386

387387
break;
@@ -435,8 +435,7 @@ static void psa_hash_operation(void)
435435
status = psa_hash_setup(msg.rhandle,
436436
psa_crypto.alg);
437437
if (status != PSA_SUCCESS) {
438-
mbedtls_free(msg.rhandle);
439-
psa_set_rhandle(msg.handle, NULL);
438+
free_message_context(&msg);
440439
}
441440
break;
442441
}
@@ -477,8 +476,7 @@ static void psa_hash_operation(void)
477476

478477
if (status != PSA_SUCCESS) {
479478
clear_hash_clone(msg.rhandle);
480-
mbedtls_free(msg.rhandle);
481-
psa_set_rhandle(msg.handle, NULL);
479+
free_message_context(&msg);
482480
}
483481
break;
484482
}
@@ -511,8 +509,7 @@ static void psa_hash_operation(void)
511509
}
512510

513511
clear_hash_clone(msg.rhandle);
514-
mbedtls_free(msg.rhandle);
515-
psa_set_rhandle(msg.handle, NULL);
512+
free_message_context(&msg);
516513
break;
517514
}
518515

@@ -545,16 +542,14 @@ static void psa_hash_operation(void)
545542
}
546543

547544
clear_hash_clone(msg.rhandle);
548-
mbedtls_free(msg.rhandle);
549-
psa_set_rhandle(msg.handle, NULL);
545+
free_message_context(&msg);
550546
break;
551547
}
552548

553549
case PSA_HASH_ABORT: {
554550
status = psa_hash_abort(msg.rhandle);
555551
clear_hash_clone(msg.rhandle);
556-
mbedtls_free(msg.rhandle);
557-
psa_set_rhandle(msg.handle, NULL);
552+
free_message_context(&msg);
558553
break;
559554
}
560555

@@ -582,8 +577,7 @@ static void psa_hash_operation(void)
582577
release_hash_clone(hash_clone);
583578
}
584579
if (status != PSA_SUCCESS) {
585-
mbedtls_free(msg.rhandle);
586-
psa_set_rhandle(msg.handle, NULL);
580+
free_message_context(&msg);
587581
}
588582
break;
589583
}
@@ -601,7 +595,7 @@ static void psa_hash_operation(void)
601595
if (msg.rhandle != NULL) {
602596
psa_hash_abort(msg.rhandle);
603597
clear_hash_clone(msg.rhandle);
604-
mbedtls_free(msg.rhandle);
598+
free_message_context(&msg);
605599
}
606600

607601
break;
@@ -954,8 +948,7 @@ static void psa_symmetric_operation(void)
954948
}
955949

956950
if (status != PSA_SUCCESS) {
957-
mbedtls_free(msg.rhandle);
958-
psa_set_rhandle(msg.handle, NULL);
951+
free_message_context(&msg);
959952
}
960953
break;
961954
}
@@ -968,8 +961,7 @@ static void psa_symmetric_operation(void)
968961
}
969962

970963
if (status != PSA_SUCCESS) {
971-
mbedtls_free(msg.rhandle);
972-
psa_set_rhandle(msg.handle, NULL);
964+
free_message_context(&msg);
973965
}
974966
break;
975967
}
@@ -986,8 +978,7 @@ static void psa_symmetric_operation(void)
986978
psa_write(msg.handle, 1, &iv_length,
987979
sizeof(iv_length));
988980
} else {
989-
mbedtls_free(msg.rhandle);
990-
psa_set_rhandle(msg.handle, NULL);
981+
free_message_context(&msg);
991982
}
992983
break;
993984
}
@@ -1002,8 +993,7 @@ static void psa_symmetric_operation(void)
1002993
}
1003994
status = psa_cipher_set_iv(msg.rhandle, iv, iv_length);
1004995
if (status != PSA_SUCCESS) {
1005-
mbedtls_free(msg.rhandle);
1006-
psa_set_rhandle(msg.handle, NULL);
996+
free_message_context(&msg);
1007997
}
1008998
break;
1009999
}
@@ -1047,8 +1037,7 @@ static void psa_symmetric_operation(void)
10471037
mbedtls_free(input);
10481038
mbedtls_free(output);
10491039
if (status != PSA_SUCCESS) {
1050-
mbedtls_free(msg.rhandle);
1051-
psa_set_rhandle(msg.handle, NULL);
1040+
free_message_context(&msg);
10521041
}
10531042
break;
10541043
}
@@ -1076,15 +1065,13 @@ static void psa_symmetric_operation(void)
10761065
psa_cipher_abort(msg.rhandle);
10771066
}
10781067

1079-
mbedtls_free(msg.rhandle);
1080-
psa_set_rhandle(msg.handle, NULL);
1068+
free_message_context(&msg);
10811069
break;
10821070
}
10831071

10841072
case PSA_CIPHER_ABORT: {
10851073
status = psa_cipher_abort(msg.rhandle);
1086-
mbedtls_free(msg.rhandle);
1087-
psa_set_rhandle(msg.handle, NULL);
1074+
free_message_context(&msg);
10881075
break;
10891076
}
10901077

@@ -1100,7 +1087,7 @@ static void psa_symmetric_operation(void)
11001087
case PSA_IPC_DISCONNECT: {
11011088
if (msg.rhandle != NULL) {
11021089
psa_cipher_abort(msg.rhandle);
1103-
mbedtls_free(msg.rhandle);
1090+
free_message_context(&msg);
11041091
}
11051092

11061093
break;
@@ -1649,8 +1636,7 @@ void psa_crypto_generator_operations(void)
16491636

16501637
case PSA_GENERATOR_ABORT: {
16511638
status = psa_generator_abort(msg.rhandle);
1652-
mbedtls_free(msg.rhandle);
1653-
psa_set_rhandle(msg.handle, NULL);
1639+
free_message_context(&msg);
16541640
break;
16551641
}
16561642

@@ -1695,8 +1681,7 @@ void psa_crypto_generator_operations(void)
16951681
mbedtls_free(salt);
16961682
mbedtls_free(label);
16971683
if (status != PSA_SUCCESS) {
1698-
mbedtls_free(msg.rhandle);
1699-
psa_set_rhandle(msg.handle, NULL);
1684+
free_message_context(&msg);
17001685
}
17011686
break;
17021687
}
@@ -1729,8 +1714,7 @@ void psa_crypto_generator_operations(void)
17291714
}
17301715

17311716
if (status != PSA_SUCCESS) {
1732-
mbedtls_free(msg.rhandle);
1733-
psa_set_rhandle(msg.handle, NULL);
1717+
free_message_context(&msg);
17341718
}
17351719
break;
17361720
}
@@ -1746,7 +1730,7 @@ void psa_crypto_generator_operations(void)
17461730
case PSA_IPC_DISCONNECT: {
17471731
if (msg.rhandle != NULL) {
17481732
psa_generator_abort(msg.rhandle);
1749-
mbedtls_free(msg.rhandle);
1733+
free_message_context(&msg);
17501734
}
17511735

17521736
break;

0 commit comments

Comments
 (0)