bug-bash
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bash-5.0 Official Patch 15


From: Chet Ramey
Subject: Bash-5.0 Official Patch 15
Date: Mon, 10 Feb 2020 11:25:14 -0500

                             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_ */

-- 
``The lyf so short, the craft so long to lerne.'' - Chaucer
                 ``Ars longa, vita brevis'' - Hippocrates
Chet Ramey, UTech, CWRU    chet@case.edu    http://tiswww.cwru.edu/~chet/



reply via email to

[Prev in Thread] Current Thread [Next in Thread]