X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=drivers%2Fcrypto%2Farmv8%2Frte_armv8_pmd.c;h=3f6cb66ba220f03286f06fd3ec934d27e12414eb;hb=6b7c717ed1655124106a393dce256b64b3824c31;hp=72d29ae0cb08f00c3227a8d76b9e3bdfc5175ca1;hpb=76a4ed5b3bc91c5296e3d6780243d237f3ed8506;p=dpdk.git diff --git a/drivers/crypto/armv8/rte_armv8_pmd.c b/drivers/crypto/armv8/rte_armv8_pmd.c index 72d29ae0cb..3f6cb66ba2 100644 --- a/drivers/crypto/armv8/rte_armv8_pmd.c +++ b/drivers/crypto/armv8/rte_armv8_pmd.c @@ -143,7 +143,8 @@ crypto_chain_order[] = { crypto_func_tbl_t *func_tbl = \ (crypto_chain_order[(order)])[(cop)]; \ \ - ((*func_tbl)[(calg)][(aalg)][KEYL(keyl)]); \ + ((calg >= CRYPTO_CIPHER_MAX) || (aalg >= CRYPTO_AUTH_MAX)) ? \ + NULL : ((*func_tbl)[(calg)][(aalg)][KEYL(keyl)]); \ }) /*----------------------------------------------------------------------------*/ @@ -188,7 +189,8 @@ crypto_key_sched_dir[] = { ({ \ crypto_key_sched_tbl_t *ks_tbl = crypto_key_sched_dir[(cop)]; \ \ - ((*ks_tbl)[(calg)][KEYL(keyl)]); \ + (calg >= CRYPTO_CIPHER_MAX) ? \ + NULL : ((*ks_tbl)[(calg)][KEYL(keyl)]); \ }) /*----------------------------------------------------------------------------*/ @@ -436,7 +438,8 @@ armv8_crypto_set_session_chained_parameters(struct armv8_crypto_session *sess, return -ENOTSUP; } - if (unlikely(sess->crypto_func == NULL)) { + if (unlikely(sess->crypto_func == NULL || + sess->cipher.key_sched == NULL)) { /* * If we got here that means that there must be a bug * in the algorithms selection above. Nevertheless keep