2011-03-09 Michael Snyder <msnyder@vmware.com>
authorMichael Snyder <msnyder@vmware.com>
Wed, 9 Mar 2011 20:31:50 +0000 (20:31 +0000)
committerMichael Snyder <msnyder@vmware.com>
Wed, 9 Mar 2011 20:31:50 +0000 (20:31 +0000)
* mi-cmd-disas.c (mi_cmd_disassemble): Fix memory leak.

gdb/ChangeLog
gdb/mi/mi-cmd-disas.c

index c263053acd8f20f4707efe4836d11d60d043f9da..c6472e873fc7d965c059dce67dd0f53f9b3cba62 100644 (file)
@@ -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'.
index bfe1769ed1b053c32c8343491e1521c2807d0ae1..28e84f661d81706f7fa6f519a5946b21e3de4843 100644 (file)
@@ -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);
 }