driver inclusion category: bugfix bugzilla: https://gitee.com/openeuler/kernel/issues/IDC64W CVE: NA ---------------------------------------------------------------------- Add crypto_has_comp to check algorithm before soft tfm allocation. Fixes: cc77833b99b0 ("crypto: hisilicon/zip - support fallback for zip") Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com> Signed-off-by: JiangShui Yang <yangjiangshui@h-partners.com> --- drivers/crypto/hisilicon/zip/zip_crypto.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/drivers/crypto/hisilicon/zip/zip_crypto.c b/drivers/crypto/hisilicon/zip/zip_crypto.c index 185e91fdbb96..e1e5bd424638 100644 --- a/drivers/crypto/hisilicon/zip/zip_crypto.c +++ b/drivers/crypto/hisilicon/zip/zip_crypto.c @@ -114,7 +114,7 @@ module_param_cb(sgl_sge_nr, &sgl_sge_nr_ops, &sgl_sge_nr, 0444); MODULE_PARM_DESC(sgl_sge_nr, "Number of sge in sgl(1-255)"); static int hisi_zip_fallback_do_work(struct crypto_comp *tfm, struct acomp_req *acomp_req, - bool is_decompress) + bool is_decompress) { void *input, *output; const char *algo; @@ -553,6 +553,9 @@ static int hisi_zip_fallback_init(struct hisi_zip_ctx *ctx, const char *alg_name if (!IS_ERR_OR_NULL(ctx->soft_tfm)) return 0; + if (!crypto_has_comp(alg_name, 0, 0)) + return -ENODEV; + ctx->soft_tfm = crypto_alloc_comp(alg_name, 0, 0); if (IS_ERR_OR_NULL(ctx->soft_tfm)) { pr_err("could not alloc soft tfm %s\n", alg_name); -- 2.43.0