This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[patch]: Fix memory leak of symtab.c
- From: teawater <teawater at gmail dot com>
- To: gdb-patches at sourceware dot org
- Date: Tue, 8 Jul 2008 14:56:48 +0800
- Subject: [patch]: Fix memory leak of symtab.c
symtab.c has a memory leek in function expand_line_sal. struct block
**blocks and int *filter are xmalloc at line 4459 and 4460. There are
returns at the end of this function without calling xfree. And these
variables is just used in this function. So I change them to "alloca".
This patch is for the GDB cvs version.
2008-06-21 Hui Zhu <teawater@gmail.com>
* symtab.c (expand_line_sal): Fix a memory leak.
--- a/gdb/symtab.c
+++ b/gdb/symtab.c
@@ -4456,8 +4456,8 @@ expand_line_sal (struct symtab_and_line
blocks -- for each PC found above we see if there are other PCs
that are in the same block. If yes, the other PCs are filtered out. */
- filter = xmalloc (ret.nelts * sizeof (int));
- blocks = xmalloc (ret.nelts * sizeof (struct block *));
+ filter = alloca (ret.nelts * sizeof (int));
+ blocks = alloca (ret.nelts * sizeof (struct block *));
for (i = 0; i < ret.nelts; ++i)
{
filter[i] = 1;