This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: [RFA] python/py-breakpoint.c, fix memory leak
- From: Michael Snyder <msnyder at vmware dot com>
- To: Tom Tromey <tromey at redhat dot com>
- Cc: "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Wed, 02 Mar 2011 12:46:40 -0800
- Subject: Re: [RFA] python/py-breakpoint.c, fix memory leak
- References: <4D6ADBC0.9010807@vmware.com> <m37hck9mqi.fsf@fleche.redhat.com>
Tom Tromey wrote:
"Michael" == Michael Snyder <msnyder@vmware.com> writes:
Michael> 2011-02-27 Michael Snyder <msnyder@vmware.com>
Michael> * python/py-breakpoint.c (bppy_get_commands): Fix memory leak.
This is good but not sufficient.
I think you also need to install a cleanup for cmdstr after it is
assigned.
Tom
Like this?
2011-02-27 Michael Snyder <msnyder@vmware.com>
* python/py-breakpoint.c (bppy_get_commands): Fix memory leak.
Index: python/py-breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/python/py-breakpoint.c,v
retrieving revision 1.14
diff -u -p -u -p -r1.14 py-breakpoint.c
--- python/py-breakpoint.c 4 Feb 2011 21:54:16 -0000 1.14
+++ python/py-breakpoint.c 2 Mar 2011 20:45:55 -0000
@@ -489,12 +489,12 @@ bppy_get_commands (PyObject *self, void
print_command_lines (uiout, breakpoint_commands (bp), 0);
}
ui_out_redirect (uiout, NULL);
- cmdstr = ui_file_xstrdup (string_file, &length);
GDB_PY_HANDLE_EXCEPTION (except);
+ cmdstr = ui_file_xstrdup (string_file, &length);
+ make_cleanup (xfree, cmdstr);
result = PyString_Decode (cmdstr, strlen (cmdstr), host_charset (), NULL);
do_cleanups (chain);
- xfree (cmdstr);
return result;
}