crypto: bails out early for unsupported key type
Do not access data structures based on uninitialized key->alg.
Type: fix
Fixes: f539578bac
Change-Id: I6bfb7e7a51af2c131b8bdf3bca6a38fcf1094760
Signed-off-by: Benoît Ganne <bganne@cisco.com>
This commit is contained in:

committed by
Damjan Marion

parent
e29fb5bf1b
commit
0c65f52bb9
@ -436,6 +436,10 @@ crypto_ipsecmb_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
u32 i;
|
||||
void *kd;
|
||||
|
||||
/** TODO: add linked alg support **/
|
||||
if (key->type == VNET_CRYPTO_KEY_TYPE_LINK)
|
||||
return;
|
||||
|
||||
if (kop == VNET_CRYPTO_KEY_OP_DEL)
|
||||
{
|
||||
if (idx >= vec_len (imbm->key_data))
|
||||
@ -459,10 +463,6 @@ crypto_ipsecmb_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
clib_mem_free_s (imbm->key_data[idx]);
|
||||
}
|
||||
|
||||
/** TODO: add linked alg support **/
|
||||
if (key->type == VNET_CRYPTO_KEY_TYPE_LINK)
|
||||
return;
|
||||
|
||||
kd = imbm->key_data[idx] = clib_mem_alloc_aligned (ad->data_size,
|
||||
CLIB_CACHE_LINE_BYTES);
|
||||
|
||||
|
@ -29,6 +29,10 @@ crypto_native_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
vnet_crypto_key_t *key = vnet_crypto_get_key (idx);
|
||||
crypto_native_main_t *cm = &crypto_native_main;
|
||||
|
||||
/** TODO: add linked alg support **/
|
||||
if (key->type == VNET_CRYPTO_KEY_TYPE_LINK)
|
||||
return;
|
||||
|
||||
if (cm->key_fn[key->alg] == 0)
|
||||
return;
|
||||
|
||||
@ -45,10 +49,6 @@ crypto_native_key_handler (vlib_main_t * vm, vnet_crypto_key_op_t kop,
|
||||
return;
|
||||
}
|
||||
|
||||
/** TODO: add linked alg support **/
|
||||
if (key->type == VNET_CRYPTO_KEY_TYPE_LINK)
|
||||
return;
|
||||
|
||||
vec_validate_aligned (cm->key_data, idx, CLIB_CACHE_LINE_BYTES);
|
||||
|
||||
if (kop == VNET_CRYPTO_KEY_OP_MODIFY && cm->key_data[idx])
|
||||
|
Reference in New Issue
Block a user