From 080c84cde42fd06443b02f495cd0397a490a1f71 Mon Sep 17 00:00:00 2001 From: Ciara Power Date: Fri, 18 Feb 2022 12:57:52 +0000 Subject: [PATCH] cryptodev: fix asymmetric private session variable size When creating the asymmetric session mempool, the maximum private session size of all devices is used when creating the mempool object size. The return value for ``rte_cryptodev_asym_get_private_session_size`` is unsigned int, whereas the variable was uint8_t, leading to a possible overflow issue. To fix this, the variable for private session size is now changed to unsigned int to match the function return type. Fixes: 1f1e4b7cbaad ("cryptodev: use single mempool for asymmetric session") Reported-by: Arek Kusztal Signed-off-by: Ciara Power Acked-by: Fan Zhang Acked-by: Arek Kusztal --- lib/cryptodev/rte_cryptodev.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c index 321d2171d4..3500a2d470 100644 --- a/lib/cryptodev/rte_cryptodev.c +++ b/lib/cryptodev/rte_cryptodev.c @@ -1799,7 +1799,8 @@ rte_cryptodev_asym_session_pool_create(const char *name, uint32_t nb_elts, struct rte_mempool *mp; struct rte_cryptodev_asym_session_pool_private_data *pool_priv; uint32_t obj_sz, obj_sz_aligned; - uint8_t dev_id, priv_sz, max_priv_sz = 0; + uint8_t dev_id; + unsigned int priv_sz, max_priv_sz = 0; for (dev_id = 0; dev_id < RTE_CRYPTO_MAX_DEVS; dev_id++) if (rte_cryptodev_is_valid_dev(dev_id)) { -- 2.39.5