diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 327ce7bf87..e507dd181c 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,7 @@ +2016-02-17 Gary Benson + + * exec.c (exec_file_locate_attach): Add missing cleanup. + 2016-02-16 Don Breazeal PR remote/19496 diff --git a/gdb/exec.c b/gdb/exec.c index 23c89c2521..0b8c0777f5 100644 --- a/gdb/exec.c +++ b/gdb/exec.c @@ -141,6 +141,7 @@ void exec_file_locate_attach (int pid, int from_tty) { char *exec_file, *full_exec_path = NULL; + struct cleanup *old_chain; /* Do nothing if we already have an executable filename. */ exec_file = (char *) get_exec_file (0); @@ -170,8 +171,12 @@ exec_file_locate_attach (int pid, int from_tty) full_exec_path = xstrdup (exec_file); } + old_chain = make_cleanup (xfree, full_exec_path); + exec_file_attach (full_exec_path, from_tty); symbol_file_add_main (full_exec_path, from_tty); + + do_cleanups (old_chain); } /* Set FILENAME as the new exec file.