]> git.ipfire.org Git - thirdparty/bash.git/commitdiff
Bash-5.0 patch 15: aliases and -c commands can cause premature termination
authorChet Ramey <chet.ramey@case.edu>
Fri, 7 Feb 2020 20:19:53 +0000 (15:19 -0500)
committerChet Ramey <chet.ramey@case.edu>
Fri, 7 Feb 2020 20:19:53 +0000 (15:19 -0500)
builtins/evalstring.c
patchlevel.h

index cadc9bc0653520fbbf3f6ef9b3d77a45b668065b..2f13a66ae05b38836632eac4eefe2e6a77465ea7 100644 (file)
@@ -91,6 +91,7 @@ should_suppress_fork (command)
   return (startup_state == 2 && parse_and_execute_level == 1 &&
          running_trap == 0 &&
          *bash_input.location.string == '\0' &&
+         parser_expanding_alias () == 0 &&
          command->type == cm_simple &&
          signal_is_trapped (EXIT_TRAP) == 0 &&
          signal_is_trapped (ERROR_TRAP) == 0 &&
@@ -105,6 +106,7 @@ can_optimize_connection (command)
      COMMAND *command;
 {
   return (*bash_input.location.string == '\0' &&
+         parser_expanding_alias () == 0 &&
          (command->value.Connection->connector == AND_AND || command->value.Connection->connector == OR_OR || command->value.Connection->connector == ';') &&
          command->value.Connection->second->type == cm_simple);
 }
@@ -290,7 +292,7 @@ parse_and_execute (string, from_file, flags)
 
   with_input_from_string (string, from_file);
   clear_shell_input_line ();
-  while (*(bash_input.location.string))
+  while (*(bash_input.location.string) || parser_expanding_alias ())
     {
       command = (COMMAND *)NULL;
 
@@ -545,7 +547,7 @@ parse_string (string, from_file, flags, endp)
   ostring = string;
 
   with_input_from_string (string, from_file);
-  while (*(bash_input.location.string))
+  while (*(bash_input.location.string))                /* XXX - parser_expanding_alias () ? */
     {
       command = (COMMAND *)NULL;
 
index 09a3cc844c2a1020d695d3b0246277bbab37cb21..6e9ed3fc898ad66e9b99411775508d5b5a563174 100644 (file)
@@ -25,6 +25,6 @@
    regexp `^#define[   ]*PATCHLEVEL', since that's what support/mkversion.sh
    looks for to find the patch level (for the sccs version string). */
 
-#define PATCHLEVEL 14
+#define PATCHLEVEL 15
 
 #endif /* _PATCHLEVEL_H_ */