From mboxrd@z Thu Jan 1 00:00:00 1970 From: Zhe Tao Subject: [PATCH] eal: change to prevent memory leak in eal debug Date: Mon, 21 Sep 2015 17:00:47 +0800 Message-ID: <1442826047-4093-1-git-send-email-zhe.tao@intel.com> To: dev@dpdk.org Return-path: Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 75991E72 for ; Mon, 21 Sep 2015 11:01:03 +0200 (CEST) List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Free the memory allocated by the backtrace_symbols to prevent the memory leak Signed-off-by: Zhe Tao --- lib/librte_eal/bsdapp/eal/eal_debug.c | 6 ++++++ lib/librte_eal/linuxapp/eal/eal_debug.c | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal_debug.c b/lib/librte_eal/bsdapp/eal/eal_debug.c index 44fc4f3..82d1c81 100644 --- a/lib/librte_eal/bsdapp/eal/eal_debug.c +++ b/lib/librte_eal/bsdapp/eal/eal_debug.c @@ -53,11 +53,17 @@ void rte_dump_stack(void) size = backtrace(func, BACKTRACE_SIZE); symb = backtrace_symbols(func, size); + + if (NULL == symb) + return; + while (size > 0) { rte_log(RTE_LOG_ERR, RTE_LOGTYPE_EAL, "%d: [%s]\n", size, symb[size - 1]); size --; } + + free(symb); } /* not implemented in this environment */ diff --git a/lib/librte_eal/linuxapp/eal/eal_debug.c b/lib/librte_eal/linuxapp/eal/eal_debug.c index 44fc4f3..82d1c81 100644 --- a/lib/librte_eal/linuxapp/eal/eal_debug.c +++ b/lib/librte_eal/linuxapp/eal/eal_debug.c @@ -53,11 +53,17 @@ void rte_dump_stack(void) size = backtrace(func, BACKTRACE_SIZE); symb = backtrace_symbols(func, size); + + if (NULL == symb) + return; + while (size > 0) { rte_log(RTE_LOG_ERR, RTE_LOGTYPE_EAL, "%d: [%s]\n", size, symb[size - 1]); size --; } + + free(symb); } /* not implemented in this environment */ -- 1.9.3