vppinfra: add clib_mem_free_s
IPsec zero-es all allocated key memory including memory sur-allocated by
the allocator.
Move it to its own function in clib mem infra to make it easier to
instrument.
Type: refactor
Change-Id: Icd1c44d18b741e723864abce75ac93e2eff74b61
Signed-off-by: Benoît Ganne <bganne@cisco.com>
(cherry picked from commit 78af0a8c5f
)
This commit is contained in:

committed by
Andrew Yourtchenko

parent
54ff70cb3c
commit
952d4e7fb9
@ -40,9 +40,7 @@ crypto_ia32_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
if (cm->key_data[idx] == 0)
|
||||
return;
|
||||
|
||||
clib_memset_u8 (cm->key_data[idx], 0,
|
||||
clib_mem_size (cm->key_data[idx]));
|
||||
clib_mem_free (cm->key_data[idx]);
|
||||
clib_mem_free_s (cm->key_data[idx]);
|
||||
cm->key_data[idx] = 0;
|
||||
return;
|
||||
}
|
||||
@ -51,9 +49,7 @@ crypto_ia32_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
|
||||
if (kop == VNET_CRYPTO_KEY_OP_MODIFY && cm->key_data[idx])
|
||||
{
|
||||
clib_memset_u8 (cm->key_data[idx], 0,
|
||||
clib_mem_size (cm->key_data[idx]));
|
||||
clib_mem_free (cm->key_data[idx]);
|
||||
clib_mem_free_s (cm->key_data[idx]);
|
||||
}
|
||||
|
||||
cm->key_data[idx] = cm->key_fn[key->alg] (key);
|
||||
|
@ -402,9 +402,7 @@ crypto_ipsecmb_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
if (imbm->key_data[idx] == 0)
|
||||
return;
|
||||
|
||||
clib_memset_u8 (imbm->key_data[idx], 0,
|
||||
clib_mem_size (imbm->key_data[idx]));
|
||||
clib_mem_free (imbm->key_data[idx]);
|
||||
clib_mem_free_s (imbm->key_data[idx]);
|
||||
imbm->key_data[idx] = 0;
|
||||
return;
|
||||
}
|
||||
@ -416,9 +414,7 @@ crypto_ipsecmb_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
|
||||
if (kop == VNET_CRYPTO_KEY_OP_MODIFY && imbm->key_data[idx])
|
||||
{
|
||||
clib_memset_u8 (imbm->key_data[idx], 0,
|
||||
clib_mem_size (imbm->key_data[idx]));
|
||||
clib_mem_free (imbm->key_data[idx]);
|
||||
clib_mem_free_s (imbm->key_data[idx]);
|
||||
}
|
||||
|
||||
kd = imbm->key_data[idx] = clib_mem_alloc_aligned (ad->data_size,
|
||||
|
@ -272,6 +272,14 @@ clib_mem_size (void *p)
|
||||
#endif
|
||||
}
|
||||
|
||||
always_inline void
|
||||
clib_mem_free_s (void *p)
|
||||
{
|
||||
uword size = clib_mem_size (p);
|
||||
memset_s_inline (p, size, 0, size);
|
||||
clib_mem_free (p);
|
||||
}
|
||||
|
||||
always_inline void *
|
||||
clib_mem_get_heap (void)
|
||||
{
|
||||
|
Reference in New Issue
Block a user