Commit 094528b6 authored by Natalia Petrova's avatar Natalia Petrova Committed by Herbert Xu

crypto: nitrox - avoid double free on error path in nitrox_sriov_init()

If alloc_workqueue() fails in nitrox_mbox_init() it deallocates
ndev->iov.vfdev and returns error code, but then nitrox_sriov_init()
calls nitrox_sriov_cleanup() where ndev->iov.vfdev is deallocated
again.

Fix this by nulling ndev->iov.vfdev after the first deallocation.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: 9e5de3e0 ("crypto: cavium/nitrox - Add mailbox...")
Signed-off-by: default avatarNatalia Petrova <n.petrova@fintech.ru>
Signed-off-by: default avatarAlexey Khoroshilov <khoroshilov@ispras.ru>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 375de984
...@@ -195,6 +195,7 @@ int nitrox_mbox_init(struct nitrox_device *ndev) ...@@ -195,6 +195,7 @@ int nitrox_mbox_init(struct nitrox_device *ndev)
ndev->iov.pf2vf_wq = alloc_workqueue("nitrox_pf2vf", 0, 0); ndev->iov.pf2vf_wq = alloc_workqueue("nitrox_pf2vf", 0, 0);
if (!ndev->iov.pf2vf_wq) { if (!ndev->iov.pf2vf_wq) {
kfree(ndev->iov.vfdev); kfree(ndev->iov.vfdev);
ndev->iov.vfdev = NULL;
return -ENOMEM; return -ENOMEM;
} }
/* enable pf2vf mailbox interrupts */ /* enable pf2vf mailbox interrupts */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment