2006-04-07 Andrew Stubbs <andrew.stubbs@st.com>

gdb/
	* cli/cli-script.c (struct user_args): Add command field.
	(arg_cleanup): Free command string.
	(setup_user_args): Copy the command line before relying on it.

gdb/testsuite/
	* gdb.base/commands.exp (recursive_source_test): New test.
This commit is contained in:
Andrew Stubbs 2006-04-07 13:31:15 +00:00
parent f2e349f91a
commit e28493f226
4 changed files with 51 additions and 1 deletions

View file

@ -54,6 +54,9 @@ static int control_level;
struct user_args
{
struct user_args *next;
/* It is necessary to store a malloced copy of the command line to
ensure that the arguments are not overwritten before they are used. */
char *command;
struct
{
char *arg;
@ -483,6 +486,7 @@ arg_cleanup (void *ignore)
_("arg_cleanup called with no user args.\n"));
user_args = user_args->next;
xfree (oargs->command);
xfree (oargs);
}
@ -507,6 +511,8 @@ setup_user_args (char *p)
if (p == NULL)
return old_chain;
user_args->command = p = xstrdup (p);
while (*p)
{
char *start_arg;