crypto: octeontx2 - prevent underflow in get_cores_bmap()
authorDan Carpenter <dan.carpenter@oracle.com>
Fri, 17 Dec 2021 07:13:32 +0000 (10:13 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:03:47 +0000 (11:03 +0100)
[ Upstream commit 10371b6212bb682f13247733d6b76b91b2b80f9a ]

If we're going to cap "eng_grp->g->engs_num" upper bounds then we should
cap the lower bounds as well.

Fixes: 43ac0b824f1c ("crypto: octeontx2 - load microcode and create engine groups")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/marvell/octeontx2/otx2_cptpf_ucode.c

index dff34b3..7c1b92a 100644 (file)
@@ -29,7 +29,8 @@ static struct otx2_cpt_bitmap get_cores_bmap(struct device *dev,
        bool found = false;
        int i;
 
-       if (eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
+       if (eng_grp->g->engs_num < 0 ||
+           eng_grp->g->engs_num > OTX2_CPT_MAX_ENGINES) {
                dev_err(dev, "unsupported number of engines %d on octeontx2\n",
                        eng_grp->g->engs_num);
                return bmap;