[dpdk-dev] [PATCH] eal: fix memleak on mp request error handler
gfree.wind at vip.163.com
gfree.wind at vip.163.com
Wed Dec 5 03:50:25 CET 2018
From: Gao Feng <davidfgao at tencent.com>
When rte_eal_alarm_set failed, need to free the bundle mem in the
error handler of handle_primary_request and handle_secondary_request.
Signed-off-by: Gao Feng <davidfgao at tencent.com>
---
lib/librte_eal/common/hotplug_mp.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/lib/librte_eal/common/hotplug_mp.c b/lib/librte_eal/common/hotplug_mp.c
index 070e2e0..9d610a8 100644
--- a/lib/librte_eal/common/hotplug_mp.c
+++ b/lib/librte_eal/common/hotplug_mp.c
@@ -208,6 +208,8 @@ static int cmp_dev_name(const struct rte_device *dev, const void *_name)
ret = rte_eal_alarm_set(1, __handle_secondary_request, bundle);
if (ret != 0) {
RTE_LOG(ERR, EAL, "failed to add mp task\n");
+ free(bundle->peer);
+ free(bundle);
return send_response_to_secondary(req, ret, peer);
}
return 0;
@@ -332,6 +334,8 @@ static void __handle_primary_request(void *param)
*/
ret = rte_eal_alarm_set(1, __handle_primary_request, bundle);
if (ret != 0) {
+ free(bundle->peer);
+ free(bundle);
resp->result = ret;
ret = rte_mp_reply(&mp_resp, peer);
if (ret != 0) {
--
1.8.3.1
More information about the dev
mailing list