libwd/0106-uadk-fix-the-failure-process-bug.patch
Younger 5c995b2464 libwd - update some patches
Update some patches for 2203-SP3 only.

Signed-off-by: Yang Shen <shenyang39@huawei.com>
2024-05-24 09:59:01 +08:00

40 lines
1.1 KiB
Diff

From 249ad7add2778b108c852faf3d65174518a44849 Mon Sep 17 00:00:00 2001
From: Qi Tao <taoqi10@huawei.com>
Date: Mon, 4 Dec 2023 17:18:43 +0800
Subject: [PATCH 106/123] uadk: fix the failure process bug
After a failure message is returned due to a calloc exception,
the mp-ref count must be decreased by 1. Otherwise, an infinite
loop occurs when the process invokes the mp command to destroy
the process and cannot exit.
Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
---
wd_mempool.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/wd_mempool.c b/wd_mempool.c
index cb8c80b..ed107d1 100644
--- a/wd_mempool.c
+++ b/wd_mempool.c
@@ -573,7 +573,7 @@ handle_t wd_blockpool_create(handle_t mempool, size_t block_size,
bp = calloc(1, sizeof(struct blkpool));
if (!bp) {
WD_ERR("failed to alloc memory for blkpool!\n");
- return (handle_t)(-WD_ENOMEM);
+ goto err_sub_ref;
}
bp->top = block_num;
@@ -597,6 +597,7 @@ err_free_mem:
free_mem_to_mempool(bp);
err_free_bp:
free(bp);
+err_sub_ref:
wd_atomic_sub(&mp->ref, 1);
return (handle_t)(-WD_ENOMEM);
}
--
2.31.1.windows.1