mirror of
https://github.com/wolfSSL/wolfssl.git
synced 2026-07-06 01:20:50 +02:00
Save heap before *_free in *_delete to avoid XFREE with zeroed memory after ForceZero
This commit is contained in:
+3
-1
@@ -13581,10 +13581,12 @@ Aes* wc_AesNew(void* heap, int devId, int *result_code)
|
||||
|
||||
int wc_AesDelete(Aes *aes, Aes** aes_p)
|
||||
{
|
||||
void* heap;
|
||||
if (aes == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
heap = aes->heap;
|
||||
wc_AesFree(aes);
|
||||
XFREE(aes, aes->heap, DYNAMIC_TYPE_AES);
|
||||
XFREE(aes, heap, DYNAMIC_TYPE_AES);
|
||||
if (aes_p != NULL)
|
||||
*aes_p = NULL;
|
||||
return 0;
|
||||
|
||||
@@ -1113,10 +1113,12 @@ curve25519_key* wc_curve25519_new(void* heap, int devId, int *result_code)
|
||||
}
|
||||
|
||||
int wc_curve25519_delete(curve25519_key* key, curve25519_key** key_p) {
|
||||
void* heap;
|
||||
if (key == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
heap = key->heap;
|
||||
wc_curve25519_free(key);
|
||||
XFREE(key, key->heap, DYNAMIC_TYPE_CURVE25519);
|
||||
XFREE(key, heap, DYNAMIC_TYPE_CURVE25519);
|
||||
if (key_p != NULL)
|
||||
*key_p = NULL;
|
||||
return 0;
|
||||
|
||||
@@ -10730,10 +10730,12 @@ dilithium_key* wc_dilithium_new(void* heap, int devId)
|
||||
|
||||
int wc_dilithium_delete(dilithium_key* key, dilithium_key** key_p)
|
||||
{
|
||||
void* heap;
|
||||
if (key == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
heap = key->heap;
|
||||
wc_dilithium_free(key);
|
||||
XFREE(key, key->heap, DYNAMIC_TYPE_DILITHIUM);
|
||||
XFREE(key, heap, DYNAMIC_TYPE_DILITHIUM);
|
||||
if (key_p != NULL)
|
||||
*key_p = NULL;
|
||||
|
||||
|
||||
@@ -1035,10 +1035,12 @@ ed25519_key* wc_ed25519_new(void* heap, int devId, int *result_code)
|
||||
}
|
||||
|
||||
int wc_ed25519_delete(ed25519_key* key, ed25519_key** key_p) {
|
||||
void* heap;
|
||||
if (key == NULL)
|
||||
return BAD_FUNC_ARG;
|
||||
heap = key->heap;
|
||||
wc_ed25519_free(key);
|
||||
XFREE(key, key->heap, DYNAMIC_TYPE_ED25519);
|
||||
XFREE(key, heap, DYNAMIC_TYPE_ED25519);
|
||||
if (key_p != NULL)
|
||||
*key_p = NULL;
|
||||
return 0;
|
||||
|
||||
Reference in New Issue
Block a user