From: Ziye Yang <optimist...@gmail.com>

This patch is used to fix the memory leak issue of logid.
We use the ASAN test in SPDK when intergrating DPDK and
find this memory leak issue.

Signed-off-by: Ziye Yang <ziye.y...@intel.com>
---
 lib/librte_eal/linuxapp/eal/eal.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/lib/librte_eal/linuxapp/eal/eal.c 
b/lib/librte_eal/linuxapp/eal/eal.c
index e59ac65..46494f9 100644
--- a/lib/librte_eal/linuxapp/eal/eal.c
+++ b/lib/librte_eal/linuxapp/eal/eal.c
@@ -793,7 +793,8 @@ static void rte_eal_init_alert(const char *msg)
        int i, fctret, ret;
        pthread_t thread_id;
        static rte_atomic32_t run_once = RTE_ATOMIC32_INIT(0);
-       const char *logid;
+       const char *p;
+       static char logid[PATH_MAX];
        char cpuset[RTE_CPU_AFFINITY_STR_LEN];
        char thread_name[RTE_MAX_THREAD_NAME_LEN];
 
@@ -810,9 +811,8 @@ static void rte_eal_init_alert(const char *msg)
                return -1;
        }
 
-       logid = strrchr(argv[0], '/');
-       logid = strdup(logid ? logid + 1: argv[0]);
-
+       p = strrchr(argv[0], '/');
+       snprintf(logid, sizeof(logid), "%s", (p ? p + 1 : argv[0]));
        thread_id = pthread_self();
 
        eal_reset_internal_config(&internal_config);
-- 
1.9.3

Reply via email to