DPDK patches and discussions
 help / color / mirror / Atom feed
* [PATCH 1/3] crypto/ipsec_mb: fix qp setup null pointer dereference
@ 2021-12-10 14:09 Ciara Power
  2021-12-10 14:09 ` [PATCH 2/3] crypto/ipsec_mb: fix qp cleanup " Ciara Power
                   ` (2 more replies)
  0 siblings, 3 replies; 7+ messages in thread
From: Ciara Power @ 2021-12-10 14:09 UTC (permalink / raw)
  To: dev; +Cc: stable, john.mcnamara, roy.fan.zhang, Ciara Power, Pablo de Lara

When setting up a qp in a secondary process, the local qp pointer is set
to the stored device qp, configured by the primary process for that
device, but only if that device qp is not NULL.
If the device qp was not set up correctly by the primary process and has
a NULL value, the local qp variable stays at the default initialised
value, NULL. This causes a NULL pointer dereference later in the
function when using the qp value.

This is fixed by always setting the local qp to the value of the device
qp stored, and then checking if qp is NULL, returning an error if it is.

Coverity issue: 374382
Fixes: 72a169278a56 ("crypto/ipsec_mb: support multi-process")
Cc: stable@dpdk.org

Signed-off-by: Ciara Power <ciara.power@intel.com>
---
 drivers/crypto/ipsec_mb/ipsec_mb_ops.c | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
index 189262c4ad..6efa417d67 100644
--- a/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
+++ b/drivers/crypto/ipsec_mb/ipsec_mb_ops.c
@@ -221,8 +221,11 @@ ipsec_mb_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 				IMB_VERSION_STR, IMB_MP_REQ_VER_STR);
 		return -EINVAL;
 #endif
-		if (dev->data->queue_pairs[qp_id] != NULL)
-			qp = dev->data->queue_pairs[qp_id];
+		qp = dev->data->queue_pairs[qp_id];
+		if (qp == NULL) {
+			IPSEC_MB_LOG(ERR, "Primary process hasn't configured device qp.");
+			return -EINVAL;
+		}
 	} else {
 		/* Free memory prior to re-allocation if needed. */
 		if (dev->data->queue_pairs[qp_id] != NULL)
-- 
2.25.1


^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-12-24 12:55 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-10 14:09 [PATCH 1/3] crypto/ipsec_mb: fix qp setup null pointer dereference Ciara Power
2021-12-10 14:09 ` [PATCH 2/3] crypto/ipsec_mb: fix qp cleanup " Ciara Power
2021-12-16 15:03   ` Zhang, Roy Fan
2021-12-10 14:09 ` [PATCH 3/3] crypto/ipsec_mb: fix tainted data for session Ciara Power
2021-12-16 15:03   ` Zhang, Roy Fan
2021-12-24 12:55   ` [EXT] " Akhil Goyal
2021-12-16 15:02 ` [PATCH 1/3] crypto/ipsec_mb: fix qp setup null pointer dereference Zhang, Roy Fan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).