Plug source_command leak
authorPedro Alves <palves@redhat.com>
Thu, 17 Aug 2017 22:45:52 +0000 (23:45 +0100)
committerPedro Alves <palves@redhat.com>
Thu, 17 Aug 2017 22:57:45 +0000 (23:57 +0100)
The heap-allocated 'old_source_verbose' local was accidentally left
behind by commit 2ec845e75876 ("More uses of scoped_restore").

Valgrind caught it, like:

 ==20123== 8 bytes in 1 blocks are definitely lost in loss record 4,609 of 13,785
 ==20123==    at 0x4C2A988: calloc (vg_replace_malloc.c:711)
 ==20123==    by 0x60A2F8: xcalloc (common-utils.c:84)
 ==20123==    by 0x4CDBE5: build_command_line(command_control_type, char const*) (cli-script.c:159)
 ==20123==    by 0x4CDC32: get_command_line(command_control_type, char const*) (cli-script.c:172)
 ==20123==    by 0x5230F1: python_command(char*, int) (python.c:421)
 ==20123==    by 0x4C61AD: do_cfunc(cmd_list_element*, char*, int) (cli-decode.c:106)
 ==20123==    by 0x4C911F: cmd_func(cmd_list_element*, char*, int) (cli-decode.c:1902)
 ==20123==    by 0x7CA79E: execute_command(char*, int) (top.c:650)
 ==20123==    by 0x695A0C: command_handler(char*) (event-top.c:590)
 ==20123==    by 0x7CA33F: read_command_file(_IO_FILE*) (top.c:461)
 ==20123==    by 0x4D0C3A: script_from_file(_IO_FILE*, char const*) (cli-script.c:1584)
 ==20123==    by 0x4C2727: source_script_from_stream(_IO_FILE*, char const*, char const*) (cli-cmds.c:589)

gdb/ChangeLog:
2017-08-17  Pedro Alves  <palves@redhat.com>

* cli/cli-cmds.c (source_command): Delete 'old_source_verbose'
local.

gdb/ChangeLog
gdb/cli/cli-cmds.c

index 50b723743fdf6ca4c827e08a0a7955ee718f85dd..083e312736cebabd361aae4fccf7271e391d9a70 100644 (file)
@@ -1,3 +1,8 @@
+2017-08-17  Pedro Alves  <palves@redhat.com>
+
+       * cli/cli-cmds.c (source_command): Delete 'old_source_verbose'
+       local.
+
 2017-08-17  Pedro Alves  <palves@redhat.com>
 
        * dwarf2read.c (struct dwarf2_cu) <line_header_die_owner>: New
index d3ec4aeaa3c0a56d7388c0e7d49b72393feca0ff..3fa24994d86102ab7ddee83ba82972950a09cfee 100644 (file)
@@ -639,7 +639,6 @@ static void
 source_command (char *args, int from_tty)
 {
   char *file = args;
-  int *old_source_verbose = XNEW (int);
   int search_path = 0;
 
   scoped_restore save_source_verbose = make_scoped_restore (&source_verbose);