crypto/qat: fix array access
authorArek Kusztal <arkadiuszx.kusztal@intel.com>
Mon, 26 Jul 2021 16:47:49 +0000 (17:47 +0100)
committerAkhil Goyal <gakhil@marvell.com>
Fri, 30 Jul 2021 18:57:23 +0000 (20:57 +0200)
Fix possible access of an array by negative index in function
qat_sym_qp_setup.

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

Signed-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>
Acked-by: Adam Dybkowski <adamx.dybkowski@intel.com>
drivers/crypto/qat/qat_sym_pmd.c

index 1c7b142..6868e5f 100644 (file)
@@ -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];