[PATCH] cryptodev: reset resource pointers in init error path
Gujjar, Abhinandan S
abhinandan.gujjar at intel.com
Thu Apr 16 16:44:43 CEST 2026
> -----Original Message-----
> From: Daniil Iskhakov <dish at amicon.ru>
> Sent: Thursday, April 16, 2026 3:05 PM
> To: Akhil Goyal <gakhil at marvell.com>; Fan Zhang
> <fanzhang.oss at gmail.com>; Gujjar, Abhinandan S
> <abhinandan.gujjar at intel.com>; Konstantin Ananyev
> <konstantin.ananyev at huawei.com>
> Cc: dev at dpdk.org; stable at dpdk.org; Daniil Iskhakov <dish at amicon.ru>;
> Daniil Agalakov <ade at amicon.ru>; sdl.dpdk at linuxtesting.org;
> rrv at amicon.ru
> Subject: [PATCH] cryptodev: reset resource pointers in init error path
>
> cryptodev_cb_init() may free partially allocated resources on failure, but does
> not reset their pointers afterwards.
>
> A later call to cryptodev_cb_cleanup() may then attempt to release both
> resources even when one of them has already been freed, because the
> cleanup logic does not rely on both pointers being valid independently.
>
> Set freed pointers to NULL in the cryptodev_cb_init() error path to make
> subsequent cleanup safe.
>
> Found by Linux Verification Center (linuxtesting.org) with SVACE.
>
> Fixes: 1c3ffb95595e ("cryptodev: add enqueue and dequeue callbacks")
> Cc: stable at dpdk.org
>
> Signed-off-by: Daniil Agalakov <ade at amicon.ru>
> Signed-off-by: Daniil Iskhakov <dish at amicon.ru>
> ---
> Cc: abhinandan.gujjar at intel.com
> Cc: sdl.dpdk at linuxtesting.org
> Cc: rrv at amicon.ru
> ---
> lib/cryptodev/rte_cryptodev.c | 1 +
> 1 file changed, 1 insertion(+)
>
Acked-by: abhinandan.gujjar at intel.com
> diff --git a/lib/cryptodev/rte_cryptodev.c b/lib/cryptodev/rte_cryptodev.c
> index 50071935c2..5cb9c93c77 100644
> --- a/lib/cryptodev/rte_cryptodev.c
> +++ b/lib/cryptodev/rte_cryptodev.c
> @@ -811,6 +811,7 @@ cryptodev_cb_init(struct rte_cryptodev *dev)
> if (dev->deq_cbs == NULL) {
> CDEV_LOG_ERR("Failed to allocate memory for deq
> callbacks");
> rte_free(dev->enq_cbs);
> + dev->enq_cbs = NULL;
> return -ENOMEM;
> }
>
> --
> 2.43.0
More information about the stable
mailing list