From: Gao Feng <davidf...@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 <davidf...@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


Reply via email to