libwd/0148-uadk-driver-init-should-check-ctx-num.patch

68 lines
2.0 KiB
Diff
Raw Normal View History

From c8025681d15bdfdee9cc00796b68f02f1cf85d67 Mon Sep 17 00:00:00 2001
From: Wenkai Lin <linwenkai6@hisilicon.com>
Date: Sat, 23 Jul 2022 16:50:30 +0800
Subject: [PATCH 163/183] uadk: driver init should check ctx num
If 'i' is >= field 'ctx_num', then qp is still 0,
it will results in a dereference of a null pointer
when hisi_sec_driver_adapter use qp's member.
Signed-off-by: Wenkai Lin <linwenkai6@hisilicon.com>
---
drv/hisi_comp.c | 5 +++++
drv/hisi_hpre.c | 5 +++++
drv/hisi_sec.c | 5 +++++
3 files changed, 15 insertions(+)
diff --git a/drv/hisi_comp.c b/drv/hisi_comp.c
index 69785e9..c940c3f 100644
--- a/drv/hisi_comp.c
+++ b/drv/hisi_comp.c
@@ -780,6 +780,11 @@ static int hisi_zip_init(struct wd_ctx_config_internal *config, void *priv)
handle_t h_ctx;
int i;
+ if (!config->ctx_num) {
+ WD_ERR("invalid: zip init config ctx num is 0!\n");
+ return -WD_EINVAL;
+ }
+
memcpy(&zip_ctx->config, config, sizeof(struct wd_ctx_config_internal));
/* allocate qp for each context */
for (i = 0; i < config->ctx_num; i++) {
diff --git a/drv/hisi_hpre.c b/drv/hisi_hpre.c
index d503d84..4c6e532 100644
--- a/drv/hisi_hpre.c
+++ b/drv/hisi_hpre.c
@@ -447,6 +447,11 @@ static int hpre_init(struct wd_ctx_config_internal *config, void *priv, const ch
handle_t h_ctx, h_qp;
int i, j;
+ if (!config->ctx_num) {
+ WD_ERR("invalid: hpre init config ctx num is 0!\n");
+ return -WD_EINVAL;
+ }
+
memcpy(&hpre_ctx->config, config, sizeof(*config));
/* allocate qp for each context */
diff --git a/drv/hisi_sec.c b/drv/hisi_sec.c
index 5865ffb..858dbb6 100644
--- a/drv/hisi_sec.c
+++ b/drv/hisi_sec.c
@@ -2341,6 +2341,11 @@ int hisi_sec_init(struct wd_ctx_config_internal *config, void *priv)
handle_t h_ctx;
int i, j;
+ if (!config->ctx_num) {
+ WD_ERR("invalid: sec init config ctx num is 0!\n");
+ return -WD_EINVAL;
+ }
+
qm_priv.sqe_size = sizeof(struct hisi_sec_sqe);
/* allocate qp for each context */
for (i = 0; i < config->ctx_num; i++) {
--
2.27.0