From mboxrd@z Thu Jan 1 00:00:00 1970 From: chixiaobo Subject: [PATCH] array malloced by backtrace_symbols() should be freed by the caller Date: Tue, 4 Aug 2015 17:04:18 +0800 Message-ID: <1438679058-18324-1-git-send-email-xiaobo.chi@nokia.com> Cc: chixiaobo To: dev@dpdk.org Return-path: Received: from demumfd002.nsn-inter.net (demumfd002.nsn-inter.net [93.183.12.31]) by dpdk.org (Postfix) with ESMTP id F01A45937 for ; Tue, 4 Aug 2015 11:04:20 +0200 (CEST) Received: from demuprx017.emea.nsn-intra.net ([10.150.129.56]) by demumfd002.nsn-inter.net (8.15.1/8.15.1) with ESMTPS id t7494KdJ004531 (version=TLSv1 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 4 Aug 2015 09:04:20 GMT 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" As to linux man page: http://linux.die.net/man/3/backtrace_symbols, The address of the array of string pointers is returned as the function result of backtrace_symbols(). This array is malloced by backtrace_symbols(), and must be freed by the caller. The strings pointed to by the array of pointers need not and should not be freed. Signed-off-by: chixiaobo --- lib/librte_eal/bsdapp/eal/eal_debug.c | 3 +++ lib/librte_eal/linuxapp/eal/eal_debug.c | 3 +++ 2 files changed, 6 insertions(+) diff --git a/lib/librte_eal/bsdapp/eal/eal_debug.c b/lib/librte_eal/bsdapp/eal/eal_debug.c index 44fc4f3..ceca2e8 100644 --- a/lib/librte_eal/bsdapp/eal/eal_debug.c +++ b/lib/librte_eal/bsdapp/eal/eal_debug.c @@ -58,6 +58,9 @@ void rte_dump_stack(void) "%d: [%s]\n", size, symb[size - 1]); size --; } + /* This array is malloced by backtrace_symbols(), and must be freed by the caller */ + if( symb ) + free( (void *)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..ceca2e8 100644 --- a/lib/librte_eal/linuxapp/eal/eal_debug.c +++ b/lib/librte_eal/linuxapp/eal/eal_debug.c @@ -58,6 +58,9 @@ void rte_dump_stack(void) "%d: [%s]\n", size, symb[size - 1]); size --; } + /* This array is malloced by backtrace_symbols(), and must be freed by the caller */ + if( symb ) + free( (void *)symb ); } /* not implemented in this environment */ -- 1.9.4.msysgit.2