From 478e5fd1d8e1a0b04fe6638c163951a0892eab44 Mon Sep 17 00:00:00 2001 From: Junxian Huang Date: Wed, 23 Apr 2025 16:55:14 +0800 Subject: [PATCH 59/62] libhns: Fix ret not assigned in create srq() mainline inclusion from mainline-v56.0-65 commit 2034b1860c5a8b0cc3879315259462c04e53a98d category: bugfix bugzilla: https://gitee.com/src-openeuler/rdma-core/issues/IC3X57 CVE: NA Reference: https://github.com/linux-rdma/rdma-core/pull/1599/commits/2034b1860c5a8b0cc3... --------------------------------------------------------------------- Fix the problem that ret may not be assigned in the error flow of create_srq(). Fixes: aa7bcf7f7e44 ("libhns: Add support for lock-free SRQ") Signed-off-by: Junxian Huang Signed-off-by: Xinghai Cen --- providers/hns/hns_roce_u_verbs.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/providers/hns/hns_roce_u_verbs.c b/providers/hns/hns_roce_u_verbs.c index 3efc2f4..e0bafe3 100644 --- a/providers/hns/hns_roce_u_verbs.c +++ b/providers/hns/hns_roce_u_verbs.c @@ -933,16 +933,20 @@ static struct ibv_srq *create_srq(struct ibv_context *context, if (pad) atomic_fetch_add(&pad->pd.refcount, 1); - if (hns_roce_srq_spinlock_init(context, srq, init_attr)) + ret = hns_roce_srq_spinlock_init(context, srq, init_attr); + if (ret) goto err_free_srq; set_srq_param(context, srq, init_attr); - if (alloc_srq_buf(srq)) + ret = alloc_srq_buf(srq); + if (ret) goto err_destroy_lock; srq->rdb = hns_roce_alloc_db(hr_ctx, HNS_ROCE_SRQ_TYPE_DB); - if (!srq->rdb) + if (!srq->rdb) { + ret = ENOMEM; goto err_srq_buf; + } ret = exec_srq_create_cmd(context, srq, init_attr); if (ret) -- 2.25.1