Do not access data structures based on uninitialized key->alg.
Type: fix
Fixes:
f539578bac8b64886b57c460c9d74273e6613f8b
Change-Id: I6bfb7e7a51af2c131b8bdf3bca6a38fcf1094760
Signed-off-by: Benoît Ganne <bganne@cisco.com>
+ /** 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))
if (kop == VNET_CRYPTO_KEY_OP_DEL)
{
if (idx >= vec_len (imbm->key_data))
clib_mem_free_s (imbm->key_data[idx]);
}
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);
kd = imbm->key_data[idx] = clib_mem_alloc_aligned (ad->data_size,
CLIB_CACHE_LINE_BYTES);
vnet_crypto_key_t *key = vnet_crypto_get_key (idx);
crypto_native_main_t *cm = &crypto_native_main;
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;
if (cm->key_fn[key->alg] == 0)
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])
vec_validate_aligned (cm->key_data, idx, CLIB_CACHE_LINE_BYTES);
if (kop == VNET_CRYPTO_KEY_OP_MODIFY && cm->key_data[idx])