diff options
-rw-r--r-- | gdb/ChangeLog | 4 | ||||
-rw-r--r-- | gdb/mi/mi-cmd-disas.c | 4 |
2 files changed, 8 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index c263053..c6472e8 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2011-03-09 Michael Snyder <msnyder@vmware.com> + + * mi-cmd-disas.c (mi_cmd_disassemble): Fix memory leak. + 2011-03-09 Pedro Alves <pedro@codesourcery.com> * nto-tdep.c (nto_find_and_open_solib): Constify local `base'. diff --git a/gdb/mi/mi-cmd-disas.c b/gdb/mi/mi-cmd-disas.c index bfe1769..28e84f6 100644 --- a/gdb/mi/mi-cmd-disas.c +++ b/gdb/mi/mi-cmd-disas.c @@ -73,6 +73,7 @@ mi_cmd_disassemble (char *command, char **argv, int argc) int how_many = -1; CORE_ADDR low = 0; CORE_ADDR high = 0; + struct cleanup *cleanups = make_cleanup (null_cleanup, NULL); /* Options processing stuff. */ int optind = 0; @@ -103,6 +104,7 @@ mi_cmd_disassemble (char *command, char **argv, int argc) case FILE_OPT: file_string = xstrdup (optarg); file_seen = 1; + make_cleanup (xfree, file_string); break; case LINE_OPT: line_num = atoi (optarg); @@ -169,4 +171,6 @@ mi_cmd_disassemble (char *command, char **argv, int argc) file_string, disasm_flags, how_many, low, high); + + do_cleanups (cleanups); } |