This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
[RFA] Stop leaking extra_string
- From: Keith Seitz <keiths at redhat dot com>
- To: "gdb-patches at sourceware dot org ml" <gdb-patches at sourceware dot org>
- Date: Wed, 20 Mar 2013 12:06:13 -0700
- Subject: [RFA] Stop leaking extra_string
Hi,
While reviewing my own patches, I noticed that struct
breakpoint.extra_string is never freed. You can see this fairly easily
in mi-breakpoint-changed.exp (or any dprintf) with valgrind (or an
assert in base_breakpoint_dtor).
I've also added a comment to breakpoint.h to mention that this member is
allocated.
Ok?
Keith
ChangeLog
2013-03-20 Keith Seitz <keiths@redhat.com>
* breakpoint.h (struct breakpoint): Add comment to
extra_string indicating that this member is mallod'd.
* breakpoint.c (base_breakpoint_dtor): Free extra_string.
Index: breakpoint.h
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.h,v
retrieving revision 1.193
diff -u -p -r1.193 breakpoint.h
--- breakpoint.h 3 Feb 2013 15:57:06 -0000 1.193
+++ breakpoint.h 20 Mar 2013 14:31:28 -0000
@@ -726,7 +726,8 @@ struct breakpoint
there is no condition. */
char *cond_string;
- /* String form of extra parameters, or NULL if there are none. */
+ /* String form of extra parameters, or NULL if there are none.
+ Malloc'd. */
char *extra_string;
/* Holds the address of the related watchpoint_scope breakpoint
Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.746
diff -u -p -r1.746 breakpoint.c
--- breakpoint.c 13 Mar 2013 18:34:53 -0000 1.746
+++ breakpoint.c 20 Mar 2013 14:31:29 -0000
@@ -12788,6 +12788,7 @@ base_breakpoint_dtor (struct breakpoint
{
decref_counted_command_line (&self->commands);
xfree (self->cond_string);
+ xfree (self->extra_string);
xfree (self->addr_string);
xfree (self->filter);
xfree (self->addr_string_range_end);