Bash-4.3 patch 30

This commit is contained in:
Chet Ramey
2014-10-05 19:12:20 -04:00
parent 13db572a82
commit ca6a2ba40c
5 changed files with 210 additions and 172 deletions
+22 -6
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