Bash-4.3 patch 30

This commit is contained in:
Chet Ramey 2014-10-05 19:12:20 -04:00
commit ca6a2ba40c
5 changed files with 210 additions and 172 deletions

View file

@ -308,12 +308,25 @@ parse_and_execute (string, from_file, flags)
{
struct fd_bitmap *bitmap;
if ((flags & SEVAL_FUNCDEF) && command->type != cm_function_def)
if (flags & SEVAL_FUNCDEF)
{
internal_warning ("%s: ignoring function definition attempt", from_file);
should_jump_to_top_level = 0;
last_result = last_command_exit_value = EX_BADUSAGE;
break;
char *x;
/* If the command parses to something other than a straight
function definition, or if we have not consumed the entire
string, or if the parser has transformed the function
name (as parsing will if it begins or ends with shell
whitespace, for example), reject the attempt */
if (command->type != cm_function_def ||
((x = parser_remaining_input ()) && *x) ||
(STREQ (from_file, command->value.Function_def->name->word) == 0))
{
internal_warning (_("%s: ignoring function definition attempt"), from_file);
should_jump_to_top_level = 0;
last_result = last_command_exit_value = EX_BADUSAGE;
reset_parser ();
break;
}
}
bitmap = new_fd_bitmap (FD_BITMAP_SIZE);
@ -378,7 +391,10 @@ parse_and_execute (string, from_file, flags)
discard_unwind_frame ("pe_dispose");
if (flags & SEVAL_ONECMD)
break;
{
reset_parser ();
break;
}
}
}
else