|
|
- 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'):
-
- *** a/builtins/evalstring.c 2019-01-29 14:15:19.000000000 -0500
- --- b/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;
- *** a/patchlevel.h 2016-06-22 14:51:03.000000000 -0400
- --- b/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_ */
|