crypto: marvell/octeontx - Fix a potential NULL dereference
Subsystems (3)
PATCH 1/1 crypto: marvell/octeontx - Fix a potential NULL dereference
Smatch reports that:
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c:132 otx_cpt_aead_callback()
warn: variable dereferenced before check 'cpt_info' (see line 121)
This function is called from process_pending_queue() as:
drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c
599 /*
600 * Call callback after current pending entry has been 601 * processed, we don't do it if the callback pointer is 602 * invalid. 603 */
604 if (callback)
605 callback(res_code, areq, cpt_info);
It does appear to me that "cpt_info" can be NULL so this could lead to a NULL dereference.
--- drivers/crypto/marvell/octeontx/otx_cptvf_algs.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c +7 -4
@@ -118,6 +118,9 @@ static void otx_cpt_aead_callback(int status, void *arg1, void *arg2)struct otx_cpt_req_info *cpt_req;struct pci_dev *pdev; +if (!cpt_info) + goto complete; + cpt_req = cpt_info->req;if (!status) {/*
@@ -129,10 +132,10 @@ static void otx_cpt_aead_callback(int status, void *arg1, void *arg2) !cpt_req->is_enc) status =validate_hmac_cipher_null (cpt_req); } -if (cpt_info) { - pdev = cpt_info->pdev; -do_request_cleanup (pdev, cpt_info); - } + pdev = cpt_info->pdev; +do_request_cleanup (pdev, cpt_info); + +complete:if (areq) areq->complete (areq, status); }
Signature · 1 line
2.26.2
Herbert Xu
maintainerQuoted 16 lines · Dan Carpenter
Smatch reports that:
drivers/crypto/marvell/octeontx/otx_cptvf_algs.c:132otx_cpt_aead_callback()
warn: variable dereferenced before check 'cpt_info' (see line 121)This function is called from
process_pending_queue()as:
drivers/crypto/marvell/octeontx/otx_cptvf_reqmgr.c
599 /*600 * Call callback after current pending entry has been 601 * processed, we don't do it if the callback pointer is 602 * invalid. 603 */604 if (callback)
605callback(res_code, areq, cpt_info);
Quoted 8 lines
It does appear to me that "
cpt_info" can be NULL so this could lead to a NULL dereference.Fixes 10b4f09491bf ("crypto: marvell - add the Virtual Function driver for CPT")Signed-off-by Dan Carpenter <[email protected]>--- drivers/crypto/marvell/octeontx/otx_cptvf_algs.c | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-)
Patch applied. Thanks.
Signature · 3 lines
Email: Herbert Xu <[email protected]> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt