diff --git a/drivers/crypto/msm/qce50.c b/drivers/crypto/msm/qce50.c index 3da06a54479..1facf24d290 100644 --- a/drivers/crypto/msm/qce50.c +++ b/drivers/crypto/msm/qce50.c @@ -1523,6 +1523,9 @@ static int _setup_cipher_aes_cmdlistptrs(struct qce_device *pdev, } break; default: + pr_err("Unknown mode of operation %d received, exiting now\n", + mode); + return -EINVAL; break; } @@ -1686,6 +1689,8 @@ static int _setup_cipher_des_cmdlistptrs(struct qce_device *pdev, } break; default: + pr_err("Unknown algorithms %d received, exiting now\n", alg); + return -EINVAL; break; } @@ -1893,6 +1898,8 @@ static int _setup_auth_cmdlistptrs(struct qce_device *pdev, 0, NULL); break; default: + pr_err("Unknown algorithms %d received, exiting now\n", alg); + return -EINVAL; break; } @@ -2247,6 +2254,10 @@ int qce_aead_req(void *handle, struct qce_req *q_req) if (q_req->mode != QCE_MODE_CCM) { ivsize = crypto_aead_ivsize(aead); auth_cmdlistinfo = &pce_dev->ce_sps.cmdlistptr.aead_sha1_hmac; + if (auth_cmdlistinfo == NULL) { + pr_err("Received NULL cmdlist, exiting now\n"); + return -EINVAL; + } } ce_burst_size = pce_dev->ce_sps.ce_burst_size; diff --git a/drivers/crypto/msm/qcedev.c b/drivers/crypto/msm/qcedev.c index 50d454c108f..41ab8dc6699 100644 --- a/drivers/crypto/msm/qcedev.c +++ b/drivers/crypto/msm/qcedev.c @@ -595,6 +595,9 @@ static int start_sha_req(struct qcedev_control *podev) sreq.authklen = qcedev_areq->sha_op_req.authklen; break; default: + pr_err("Algorithm %d not supported, exiting\n", + qcedev_areq->sha_op_req.alg); + return -EINVAL; break; }; diff --git a/drivers/crypto/msm/qcrypto.c b/drivers/crypto/msm/qcrypto.c index 7e063ca47e8..05ef87c45a1 100644 --- a/drivers/crypto/msm/qcrypto.c +++ b/drivers/crypto/msm/qcrypto.c @@ -1175,6 +1175,8 @@ static int _qcrypto_process_ahash(struct crypto_priv *cp, sreq.authklen = SHA_HMAC_KEY_SIZE; break; default: + pr_err("Algorithm %d not supported, exiting", sha_ctx->alg); + ret = -1; break; }; ret = qce_process_sha_req(cp->qce, &sreq); @@ -1240,6 +1242,7 @@ static int _qcrypto_process_aead(struct crypto_priv *cp, if (rctx->data == NULL) { pr_err("Mem Alloc fail rctx->data, err %ld\n", PTR_ERR(rctx->data)); + kzfree(qreq.assoc); return -ENOMEM; }