summaryrefslogtreecommitdiffstats
path: root/source/a/bash/bash-5.0-patches/bash50-015
diff options
context:
space:
mode:
Diffstat (limited to 'source/a/bash/bash-5.0-patches/bash50-015')
-rw-r--r--source/a/bash/bash-5.0-patches/bash50-01578
1 files changed, 78 insertions, 0 deletions
diff --git a/source/a/bash/bash-5.0-patches/bash50-015 b/source/a/bash/bash-5.0-patches/bash50-015
new file mode 100644
index 000000000..ff6e5e69d
--- /dev/null
+++ b/source/a/bash/bash-5.0-patches/bash50-015
@@ -0,0 +1,78 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.0
+Patch-ID: bash50-015
+
+Bug-Reported-by: Yu Kou <ckyoog@gmail.com>
+Bug-Reference-ID: <CAAqoF9Ko3nAShJXGzucafs-ByUagzZ4nbQonwEkwC7s9UqfWKw@mail.gmail.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2019-05/msg00032.html
+
+Bug-Description:
+
+If alias expansion is enabled when processing the command argument to the
+`-c' option, an alias is defined in that command, and the command ends with
+the invocation of that alias, the shell's command parser can prematurely
+terminate before the entire command is executed.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20190426/builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500
+--- builtins/evalstring.c 2019-05-15 14:19:36.000000000 -0400
+***************
+*** 92,95 ****
+--- 92,96 ----
+ running_trap == 0 &&
+ *bash_input.location.string == '\0' &&
++ parser_expanding_alias () == 0 &&
+ command->type == cm_simple &&
+ signal_is_trapped (EXIT_TRAP) == 0 &&
+***************
+*** 106,109 ****
+--- 107,111 ----
+ {
+ 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);
+***************
+*** 291,295 ****
+ with_input_from_string (string, from_file);
+ clear_shell_input_line ();
+! while (*(bash_input.location.string))
+ {
+ command = (COMMAND *)NULL;
+--- 293,297 ----
+ with_input_from_string (string, from_file);
+ clear_shell_input_line ();
+! while (*(bash_input.location.string) || parser_expanding_alias ())
+ {
+ command = (COMMAND *)NULL;
+***************
+*** 546,550 ****
+
+ with_input_from_string (string, from_file);
+! while (*(bash_input.location.string))
+ {
+ command = (COMMAND *)NULL;
+--- 548,552 ----
+
+ with_input_from_string (string, from_file);
+! while (*(bash_input.location.string)) /* XXX - parser_expanding_alias () ? */
+ {
+ command = (COMMAND *)NULL;
+*** ../bash-5.0/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
+--- patchlevel.h 2016-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 14
+
+ #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+ looks for to find the patch level (for the sccs version string). */
+
+! #define PATCHLEVEL 15
+
+ #endif /* _PATCHLEVEL_H_ */