From f970a75542e6dca13b9810a42c881cbe5b6c9445 Mon Sep 17 00:00:00 2001 From: Fan Zhang Date: Fri, 1 May 2020 13:06:57 +0100 Subject: crypto: fix coverity issues Fix coverity issues in crypto framework and cryptodev engine. Type: fix Signed-off-by: Fan Zhang Change-Id: Ib261da0163c8182c803600db22c5a6dad5a19999 --- src/plugins/dpdk/cryptodev/cryptodev.c | 16 +++++++++++----- src/vnet/crypto/format.c | 21 +-------------------- 2 files changed, 12 insertions(+), 25 deletions(-) diff --git a/src/plugins/dpdk/cryptodev/cryptodev.c b/src/plugins/dpdk/cryptodev/cryptodev.c index 0506ab8373b..39da4d7a3ca 100644 --- a/src/plugins/dpdk/cryptodev/cryptodev.c +++ b/src/plugins/dpdk/cryptodev/cryptodev.c @@ -457,8 +457,8 @@ cryptodev_frame_linked_algs_enqueue (vlib_main_t * vm, cryptodev_op_t **cop; u32 *bi; u32 n_enqueue, n_elts; - cryptodev_key_t *key = 0; - u32 last_key_index = ~0; + cryptodev_key_t *key; + u32 last_key_index; if (PREDICT_FALSE (frame == 0 || frame->n_elts == 0)) return -1; @@ -485,6 +485,9 @@ cryptodev_frame_linked_algs_enqueue (vlib_main_t * vm, cop[0]->frame = frame; cop[0]->n_elts = n_elts; + key = pool_elt_at_index (cmt->keys, fe->key_index); + last_key_index = fe->key_index; + while (n_elts) { vlib_buffer_t *b = vlib_get_buffer (vm, bi[0]); @@ -559,8 +562,8 @@ cryptodev_frame_gcm_enqueue (vlib_main_t * vm, cryptodev_op_t **cop; u32 *bi; u32 n_enqueue = 0, n_elts; - cryptodev_key_t *key = 0; - u32 last_key_index = ~0; + cryptodev_key_t *key; + u32 last_key_index; if (PREDICT_FALSE (frame == 0 || frame->n_elts == 0)) return -1; @@ -588,6 +591,9 @@ cryptodev_frame_gcm_enqueue (vlib_main_t * vm, cop[0]->n_elts = n_elts; frame->state = VNET_CRYPTO_OP_STATUS_COMPLETED; + key = pool_elt_at_index (cmt->keys, fe->key_index); + last_key_index = fe->key_index; + while (n_elts) { vlib_buffer_t *b = vlib_get_buffer (vm, bi[0]); @@ -1229,7 +1235,7 @@ dpdk_cryptodev_init (vlib_main_t * vm) u32 n_workers = tm->n_vlib_mains - skip_master; u32 numa = vm->numa_node; i32 sess_sz; - u32 n_cop_elts; + u64 n_cop_elts; u32 eidx; u32 i; u8 *name = 0; diff --git a/src/vnet/crypto/format.c b/src/vnet/crypto/format.c index b58ab7fceb2..c503ac81663 100644 --- a/src/vnet/crypto/format.c +++ b/src/vnet/crypto/format.c @@ -135,30 +135,11 @@ u8 * format_vnet_crypto_async_op (u8 * s, va_list * args) { vnet_crypto_main_t *cm = &crypto_main; - vnet_crypto_async_op_id_t op = va_arg (*args, int); // vnet_crypto_op_id_t); + vnet_crypto_async_op_id_t op = va_arg (*args, vnet_crypto_async_op_id_t); vnet_crypto_async_op_data_t *otd = cm->async_opt_data + op; return format (s, "%U-%U", format_vnet_crypto_async_op_type, otd->type, format_vnet_crypto_async_alg, otd->alg); - - vnet_crypto_async_op_id_t opt = va_arg (*args, vnet_crypto_async_op_id_t); - char *strings[] = { -#define _(n, s, k, t, a) \ - [VNET_CRYPTO_OP_##n##_TAG##t##_AAD##a##_ENC] = s "-enc", \ - [VNET_CRYPTO_OP_##n##_TAG##t##_AAD##a##_DEC] = s "-dec", - foreach_crypto_aead_async_alg -#undef _ -#define _(c, h, s, k ,d) \ - [VNET_CRYPTO_OP_##c##_##h##_TAG##d##_ENC] = s "-enc", \ - [VNET_CRYPTO_OP_##c##_##h##_TAG##d##_DEC] = s "-dec", - foreach_crypto_link_async_alg -#undef _ - }; - - if (opt >= VNET_CRYPTO_ASYNC_OP_N_IDS) - return format (s, "unknown"); - - return format (s, "%s", strings[opt]); } /* -- cgit 1.2.3-korg