[dpdk-dev] [PATCH] crypto/qat: fix illegal access of an array

Arek Kusztal arkadiuszx.kusztal at intel.com
Mon Jul 26 18:47:49 CEST 2021


Fix possible access of an array by negative index in function
qat_sym_qp_setup.

Fixes: 8f393c4ffdc1 ("common/qat: support GEN4 devices")
Coverity issue: 372131
Coverity issue: 372134

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal at intel.com>
---
 drivers/crypto/qat/qat_sym_pmd.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/drivers/crypto/qat/qat_sym_pmd.c b/drivers/crypto/qat/qat_sym_pmd.c
index 1c7b142511..6868e5f001 100644
--- a/drivers/crypto/qat/qat_sym_pmd.c
+++ b/drivers/crypto/qat/qat_sym_pmd.c
@@ -176,16 +176,17 @@ static int qat_sym_qp_setup(struct rte_cryptodev *dev, uint16_t qp_id,
 		int ring_pair =
 			qat_select_valid_queue(qat_dev, qp_id,
 				QAT_SERVICE_SYMMETRIC);
-		sym_hw_qps =
-			&qat_dev->qp_gen4_data[0][0];
-		qp_hw_data =
-			&qat_dev->qp_gen4_data[ring_pair][0];
+
 		if (ring_pair < 0) {
 			QAT_LOG(ERR,
 				"qp_id %u invalid for this device, no enough services allocated for GEN4 device",
 				qp_id);
 			return -EINVAL;
 		}
+		sym_hw_qps =
+			&qat_dev->qp_gen4_data[0][0];
+		qp_hw_data =
+			&qat_dev->qp_gen4_data[ring_pair][0];
 	} else {
 		sym_hw_qps = qat_gen_config[qat_dev->qat_dev_gen]
 				.qp_hw_data[QAT_SERVICE_SYMMETRIC];
-- 
2.30.2



More information about the dev mailing list