Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package bash for openSUSE:Factory checked in 
at 2022-11-12 17:40:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/bash (Old)
 and      /work/SRC/openSUSE:Factory/.bash.new.1597 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "bash"

Sat Nov 12 17:40:01 2022 rev:184 rq:1035012 version:5.2.MACRO

Changes:
--------
--- /work/SRC/openSUSE:Factory/bash/bash.changes        2022-11-04 
17:31:22.967673484 +0100
+++ /work/SRC/openSUSE:Factory/.bash.new.1597/bash.changes      2022-11-12 
17:40:02.953767963 +0100
@@ -1,0 +2,25 @@
+Wed Nov  9 15:10:07 UTC 2022 - Dr. Werner Fink <wer...@suse.de>
+
+- Add upstream patches
+  * bash52-003
+    Command substitutions need to preserve newlines instead of replacing them
+    with semicolons, especially in the presence of multiple here-documents.
+  * bash52-004
+    Bash needs to keep better track of nested brace expansions to avoid 
problems
+    with quoting and POSIX semantics.
+  * bash52-005
+    Null pattern substitution replacement strings can cause a crash.
+  * bash52-006
+    In interactive shells, interrupting the shell while entering a command
+    substitution can inhibit alias expansion.
+  * bash52-007
+    This patch fixes several problems with alias expansion inside command
+    substitutions when in POSIX mode.
+  * bash52-008
+    Array subscript expansion can inappropriately quote brackets if the 
expression
+    contains < or >.
+  * bash52-009
+    Bash arithmetic expansion should allow `@' and `*' to be used as 
associative
+    array keys in expressions.
+
+-------------------------------------------------------------------

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ bash-5.2-patches.tar.bz2 ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-001 
new/bash-5.2-patches/bash52-001
--- old/bash-5.2-patches/bash52-001     2022-10-05 16:03:03.000000000 +0200
+++ new/bash-5.2-patches/bash52-001     2022-10-06 12:45:38.440075288 +0200
@@ -14,7 +14,7 @@
 
 Patch (apply with `patch -p0'):
 
-*** ../bash-5.2/subst.c        2022-08-31 17:36:46.000000000 -0400
+*** subst.c    2022-08-31 17:36:46.000000000 -0400
 --- subst.c    2022-09-30 09:12:05.000000000 -0400
 ***************
 *** 10858,10862 ****
@@ -29,7 +29,7 @@
 !   exp = t ? sh_backslash_quote (t, abstab, 0) : savestring ("");
     free (t);
   
-*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+*** patchlevel.h       2020-06-22 14:51:03.000000000 -0400
 --- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
 ***************
 *** 26,30 ****
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-002 
new/bash-5.2-patches/bash52-002
--- old/bash-5.2-patches/bash52-002     2022-10-05 16:03:15.000000000 +0200
+++ new/bash-5.2-patches/bash52-002     2022-10-06 12:45:38.456075002 +0200
@@ -15,7 +15,7 @@
 
 Patch (apply with `patch -p0'):
 
-*** ../bash-5.2-patched/lib/readline/nls.c     2022-08-15 09:38:51.000000000 
-0400
+*** lib/readline/nls.c 2022-08-15 09:38:51.000000000 -0400
 --- lib/readline/nls.c 2022-10-05 09:23:22.000000000 -0400
 ***************
 *** 142,145 ****
@@ -29,7 +29,7 @@
   #else
     ret = (lspec == 0 || *lspec == 0) ? RL_DEFAULT_LOCALE : lspec;
 
-*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+*** patchlevel.h       2020-06-22 14:51:03.000000000 -0400
 --- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
 ***************
 *** 26,30 ****
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-003 
new/bash-5.2-patches/bash52-003
--- old/bash-5.2-patches/bash52-003     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-003     2022-11-07 17:16:45.000000000 +0100
@@ -0,0 +1,89 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-003
+
+Bug-Reported-by:        D630 <d...@posteo.net>
+Bug-Reference-ID:      <cf8523d58ac75b9ffba9519faa175...@posteo.de>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00092.html
+
+Bug-Description:
+
+Command substitutions need to preserve newlines instead of replacing them
+with semicolons, especially in the presence of multiple here-documents.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/print_cmd.c    2022-07-26 09:16:39.000000000 -0400
+--- print_cmd.c        2022-10-17 10:41:06.000000000 -0400
+***************
+*** 298,305 ****
+--- 298,307 ----
+             {
+               char c = command->value.Connection->connector;
++              int was_newline;
+  
+               s[0] = printing_comsub ? c : ';';
+               s[1] = '\0';
+  
++              was_newline = deferred_heredocs == 0 && was_heredoc == 0 && c 
== '\n';
+               if (deferred_heredocs == 0)
+                 {
+***************
+*** 315,318 ****
+--- 317,322 ----
+               if (inside_function_def)
+                 cprintf ("\n");
++              else if (printing_comsub && c == '\n' && was_newline == 0)
++                cprintf ("\n");       /* preserve newlines in comsubs but 
don't double them */
+               else
+                 {
+***************
+*** 1366,1370 ****
+      }
+    else
+!     newline ("}");
+  
+    dispose_command (cmdcopy);
+--- 1371,1379 ----
+      }
+    else
+!     {
+!       /* { */
+!       newline ("}");
+!       was_heredoc = 0;               /* not printing any here-documents now 
*/
+!     }
+  
+    dispose_command (cmdcopy);
+***************
+*** 1443,1447 ****
+      }
+    else
+!     newline ("}");
+  
+    result = the_printed_command;
+--- 1452,1459 ----
+      }
+    else
+!     {        /* { */
+!       newline ("}");
+!       was_heredoc = 0;
+!     }
+  
+    result = the_printed_command;
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 2
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-003.sig and 
new/bash-5.2-patches/bash52-003.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-004 
new/bash-5.2-patches/bash52-004
--- old/bash-5.2-patches/bash52-004     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-004     2022-11-07 17:16:58.000000000 +0100
@@ -0,0 +1,70 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-004
+
+Bug-Reported-by:       Antoine <bug-b...@glitchimini.net>
+Bug-Reference-ID:      <8bd59753-05ff-9b09-2337-2c7f52ded...@glitchimini.net>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00022.html
+
+Bug-Description:
+
+Bash needs to keep better track of nested brace expansions to avoid problems
+with quoting and POSIX semantics.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/subst.c        2022-10-05 10:22:02.000000000 -0400
+--- subst.c    2022-10-06 15:19:08.000000000 -0400
+***************
+*** 1799,1802 ****
+--- 1804,1810 ----
+  }
+  
++ #define PARAMEXPNEST_MAX     32      // for now
++ static int dbstate[PARAMEXPNEST_MAX];
++ 
+  /* Extract a parameter expansion expression within ${ and } from STRING.
+     Obey the Posix.2 rules for finding the ending `}': count braces while
+***************
+*** 1829,1832 ****
+--- 1837,1842 ----
+      return (extract_heredoc_dolbrace_string (string, sindex, quoted, flags));
+  
++   dbstate[0] = dolbrace_state;
++ 
+    pass_character = 0;
+    nesting_level = 1;
+***************
+*** 1853,1856 ****
+--- 1863,1868 ----
+        if (string[i] == '$' && string[i+1] == LBRACE)
+       {
++        if (nesting_level < PARAMEXPNEST_MAX)
++          dbstate[nesting_level] = dolbrace_state;
+         nesting_level++;
+         i += 2;
+***************
+*** 1865,1868 ****
+--- 1877,1881 ----
+         if (nesting_level == 0)
+           break;
++        dolbrace_state = (nesting_level < PARAMEXPNEST_MAX) ? 
dbstate[nesting_level] : dbstate[0];    /* Guess using initial state */
+         i++;
+         continue;
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 3
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-004.sig and 
new/bash-5.2-patches/bash52-004.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-005 
new/bash-5.2-patches/bash52-005
--- old/bash-5.2-patches/bash52-005     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-005     2022-11-07 17:18:12.000000000 +0100
@@ -0,0 +1,47 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-005
+
+Bug-Reported-by:       Justin Wood (Callek) <cal...@gmail.com>
+Bug-Reference-ID:      
<canbdky9fp2yixonp7ry4knurteuovuebxsjaqepheu7cyaf...@mail.gmail.com>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00088.html
+
+Bug-Description:
+
+Null pattern substitution replacement strings can cause a crash.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/subst.c        2022-10-05 10:22:02.000000000 -0400
+--- subst.c    2022-10-13 16:57:26.000000000 -0400
+***************
+*** 8966,8970 ****
+      }
+    else if (*string == 0 && (match_pattern (string, pat, mtype, &s, &e) != 0))
+!     return ((mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2) : 
savestring (rep));
+  
+    ret = (char *)xmalloc (rsize = 64);
+--- 8966,8971 ----
+      }
+    else if (*string == 0 && (match_pattern (string, pat, mtype, &s, &e) != 0))
+!     return (mflags & MATCH_EXPREP) ? strcreplace (rep, '&', "", 2)
+!                                 : (rep ? savestring (rep) : savestring (""));
+  
+    ret = (char *)xmalloc (rsize = 64);
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 4
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-005.sig and 
new/bash-5.2-patches/bash52-005.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-006 
new/bash-5.2-patches/bash52-006
--- old/bash-5.2-patches/bash52-006     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-006     2022-11-07 17:18:30.000000000 +0100
@@ -0,0 +1,293 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-006
+
+Bug-Reported-by:       feng xiangjun <fengxj...@gmail.com>
+Bug-Reference-ID:      
<CAHH2t87LrCmO=gdywomgn5wjt7eucl+ioxzrry34oete50s...@mail.gmail.com>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00089.html
+
+Bug-Description:
+
+In interactive shells, interrupting the shell while entering a command
+substitution can inhibit alias expansion.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/parse.y        2022-10-08 13:10:06.000000000 -0400
+--- parse.y    2022-10-14 10:03:19.000000000 -0400
+***************
+*** 3307,3310 ****
+--- 3307,3312 ----
+      extended_glob = global_extglob;
+  #endif
++   if (parser_state & (PST_CMDSUBST|PST_STRING))
++     expand_aliases = expaliases_flag;
+  
+    parser_state = 0;
+***************
+*** 4389,4392 ****
+--- 4391,4395 ----
+      parser_state |= PST_NOERROR;
+  
++   parser_state |= PST_STRING;
+    expand_aliases = 0;
+  
+***************
+*** 6402,6406 ****
+        parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */
+        /* State flags we want to set for this run through the tokenizer. */
+!       parser_state |= PST_COMPASSIGN|PST_REPARSE;
+      }
+  
+--- 6405,6409 ----
+        parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */
+        /* State flags we want to set for this run through the tokenizer. */
+!       parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING;
+      }
+  
+*** ../bash-20221007/parser.h  2022-08-30 11:39:56.000000000 -0400
+--- parser.h   2022-10-14 09:56:18.000000000 -0400
+***************
+*** 51,54 ****
+--- 51,55 ----
+  #define PST_NOEXPAND 0x400000        /* don't expand anything in 
read_token_word; for command substitution */
+  #define PST_NOERROR  0x800000        /* don't print error messages in 
yyerror */
++ #define PST_STRING   0x1000000       /* parsing a string to a command or 
word list */
+  
+  /* Definition of the delimiter stack.  Needed by parse.y and bashhist.c. */
+*** ../bash-20221007/builtins/shopt.def        2022-10-07 10:25:55.000000000 
-0400
+--- builtins/shopt.def 2022-10-14 09:30:11.000000000 -0400
+***************
+*** 150,153 ****
+--- 150,156 ----
+  #endif
+  
++ int expaliases_flag = 0;
++ static int shopt_set_expaliases PARAMS((char *, int));
++ 
+  static int shopt_set_debug_mode PARAMS((char *, int));
+  
+***************
+*** 199,203 ****
+    { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },
+    { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },
+!   { "expand_aliases", &expand_aliases, (shopt_set_func_t *)NULL },
+  #if defined (DEBUGGER)
+    { "extdebug", &debugging_mode, shopt_set_debug_mode },
+--- 202,206 ----
+    { "dotglob", &glob_dot_filenames, (shopt_set_func_t *)NULL },
+    { "execfail", &no_exit_on_failed_exec, (shopt_set_func_t *)NULL },
+!   { "expand_aliases", &expaliases_flag, shopt_set_expaliases },
+  #if defined (DEBUGGER)
+    { "extdebug", &debugging_mode, shopt_set_debug_mode },
+***************
+*** 351,355 ****
+    allow_null_glob_expansion = glob_dot_filenames = 0;
+    no_exit_on_failed_exec = 0;
+!   expand_aliases = 0;
+    extended_quote = 1;
+    fail_glob_expansion = 0;
+--- 354,358 ----
+    allow_null_glob_expansion = glob_dot_filenames = 0;
+    no_exit_on_failed_exec = 0;
+!   expand_aliases = expaliases_flag = 0;
+    extended_quote = 1;
+    fail_glob_expansion = 0;
+***************
+*** 632,635 ****
+--- 635,647 ----
+  }
+  
++ static int
++ shopt_set_expaliases (option_name, mode)
++      char *option_name;
++      int mode;
++ {
++   expand_aliases = expaliases_flag;
++   return 0;
++ }
++ 
+  #if defined (READLINE)
+  static int
+*** ../bash-20221007/builtins/common.h 2022-10-07 10:10:17.000000000 -0400
+--- builtins/common.h  2022-10-14 09:29:25.000000000 -0400
+***************
+*** 258,261 ****
+--- 258,263 ----
+  #endif
+  
++ extern int expaliases_flag;
++ 
+  /* variables from source.def */
+  extern int source_searches_cwd;
+*** ../bash-20221007/execute_cmd.c     2022-10-10 10:48:54.000000000 -0400
+--- execute_cmd.c      2022-10-14 09:32:24.000000000 -0400
+***************
+*** 1537,1541 ****
+        aliases. */
+        if (ois != interactive_shell)
+!      expand_aliases = 0;
+      }
+  
+--- 1537,1541 ----
+        aliases. */
+        if (ois != interactive_shell)
+!      expand_aliases = expaliases_flag = 0;
+      }
+  
+*** ../bash-20221007/general.c 2021-11-04 14:12:38.000000000 -0400
+--- general.c  2022-10-14 09:34:24.000000000 -0400
+***************
+*** 92,96 ****
+    &interactive_comments,
+    &source_uses_path,
+!   &expand_aliases,
+    &inherit_errexit,
+    &print_shift_error,
+--- 92,96 ----
+    &interactive_comments,
+    &source_uses_path,
+!   &expaliases_flag,
+    &inherit_errexit,
+    &print_shift_error,
+***************
+*** 107,111 ****
+    if (on != 0)
+      {
+!       interactive_comments = source_uses_path = expand_aliases = 1;
+        inherit_errexit = 1;
+        source_searches_cwd = 0;
+--- 107,112 ----
+    if (on != 0)
+      {
+!       interactive_comments = source_uses_path = 1;
+!       expand_aliases = expaliases_flag = 1;
+        inherit_errexit = 1;
+        source_searches_cwd = 0;
+***************
+*** 117,120 ****
+--- 118,122 ----
+      {
+        set_posix_options (saved_posix_vars);
++       expand_aliases = expaliases_flag;
+        free (saved_posix_vars);
+        saved_posix_vars = 0;
+***************
+*** 123,127 ****
+      {
+        source_searches_cwd = 1;
+!       expand_aliases = interactive_shell;
+        print_shift_error = 0;
+      }
+--- 125,129 ----
+      {
+        source_searches_cwd = 1;
+!       expand_aliases = expaliases_flag = interactive_shell;  /* XXX */
+        print_shift_error = 0;
+      }
+
+*** ../bash-5.2-patched/shell.c        2022-03-04 15:13:00.000000000 -0500
+--- shell.c    2022-10-14 09:36:19.000000000 -0400
+***************
+*** 1845,1850 ****
+  init_interactive ()
+  {
+!   expand_aliases = interactive_shell = startup_state = 1;
+!   interactive = 1;
+  #if defined (HISTORY)
+    if (enable_history_list == -1)
+--- 1845,1850 ----
+  init_interactive ()
+  {
+!   expand_aliases = expaliases_flag = 1;
+!   interactive_shell = startup_state = interactive = 1;
+  #if defined (HISTORY)
+    if (enable_history_list == -1)
+***************
+*** 1866,1870 ****
+  #endif /* HISTORY */
+    interactive_shell = startup_state = interactive = 0;
+!   expand_aliases = posixly_correct;  /* XXX - was 0 not posixly_correct */
+    no_line_editing = 1;
+  #if defined (JOB_CONTROL)
+--- 1866,1870 ----
+  #endif /* HISTORY */
+    interactive_shell = startup_state = interactive = 0;
+!   expand_aliases = expaliases_flag = posixly_correct;        /* XXX - was 0 
not posixly_correct */
+    no_line_editing = 1;
+  #if defined (JOB_CONTROL)
+***************
+*** 1883,1887 ****
+  #endif
+    init_noninteractive ();
+!   expand_aliases = interactive_shell = startup_state = 1;
+  #if defined (HISTORY)
+    remember_on_history = enable_history_list; /* XXX */
+--- 1883,1887 ----
+  #endif
+    init_noninteractive ();
+!   expand_aliases = expaliases_flag = interactive_shell = startup_state = 1;
+  #if defined (HISTORY)
+    remember_on_history = enable_history_list; /* XXX */
+***************
+*** 2026,2030 ****
+    forced_interactive = interactive_shell = 0;
+    subshell_environment = running_in_background = 0;
+!   expand_aliases = 0;
+    bash_argv_initialized = 0;
+  
+--- 2026,2030 ----
+    forced_interactive = interactive_shell = 0;
+    subshell_environment = running_in_background = 0;
+!   expand_aliases = expaliases_flag = 0;
+    bash_argv_initialized = 0;
+  
+*** ../bash-5.2-patched/y.tab.c        2022-09-23 10:18:27.000000000 -0400
+--- y.tab.c    2022-10-14 14:57:26.000000000 -0400
+***************
+*** 5618,5621 ****
+--- 5618,5623 ----
+      extended_glob = global_extglob;
+  #endif
++   if (parser_state & (PST_CMDSUBST|PST_STRING))
++     expand_aliases = expaliases_flag;
+  
+    parser_state = 0;
+***************
+*** 6700,6703 ****
+--- 6702,6706 ----
+      parser_state |= PST_NOERROR;
+  
++   parser_state |= PST_STRING;
+    expand_aliases = 0;
+  
+***************
+*** 8713,8717 ****
+        parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */
+        /* State flags we want to set for this run through the tokenizer. */
+!       parser_state |= PST_COMPASSIGN|PST_REPARSE;
+      }
+  
+--- 8716,8720 ----
+        parser_state &= ~PST_NOEXPAND; /* parse_comsub sentinel */
+        /* State flags we want to set for this run through the tokenizer. */
+!       parser_state |= PST_COMPASSIGN|PST_REPARSE|PST_STRING;
+      }
+  
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 5
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-006.sig and 
new/bash-5.2-patches/bash52-006.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-007 
new/bash-5.2-patches/bash52-007
--- old/bash-5.2-patches/bash52-007     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-007     2022-11-07 17:19:46.000000000 +0100
@@ -0,0 +1,262 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-007
+
+Bug-Reported-by:       Bruce Jerrick
+Bug-Reference-ID:
+Bug-Reference-URL:     https://bugzilla.redhat.com/show_bug.cgi?id=2134307
+
+Bug-Description:
+
+This patch fixes several problems with alias expansion inside command
+substitutions when in POSIX mode.
+
+Patch (apply with `patch -p0'):
+
+*** /fs1/chet/scratch/bash-5.2.6/parse.y       2022-11-02 10:36:54.000000000 
-0400
+--- parse.y    2022-10-24 10:53:26.000000000 -0400
+***************
+*** 3613,3616 ****
+--- 3614,3618 ----
+  #define P_ARRAYSUB   0x0020  /* parsing a [...] array subscript for 
assignment */
+  #define P_DOLBRACE   0x0040  /* parsing a ${...} construct */
++ #define P_ARITH              0x0080  /* parsing a $(( )) arithmetic 
expansion */
+  
+  /* Lexical state while parsing a grouping construct or $(...). */
+***************
+*** 3911,3914 ****
+--- 3914,3920 ----
+         else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) 
&& (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
+           goto parse_dollar_word;
++        else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') 
/*)*/
++          /* $() inside $(( ))/$[ ] */
++          goto parse_dollar_word;
+  #if defined (PROCESS_SUBSTITUTION)
+         /* XXX - technically this should only be recognized at the start of
+***************
+*** 3941,3945 ****
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, 
P_FIRSTCLOSE|P_DOLBRACE|rflags);
+         else if (ch == '[')           /* ] */
+!          nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags);
+  
+         CHECK_NESTRET_ERROR ();
+--- 3947,3951 ----
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, 
P_FIRSTCLOSE|P_DOLBRACE|rflags);
+         else if (ch == '[')           /* ] */
+!          nestret = parse_matched_pair (0, '[', ']', &nestlen, 
rflags|P_ARITH);
+  
+         CHECK_NESTRET_ERROR ();
+***************
+*** 4080,4084 ****
+        shell_ungetc (peekc);
+        if (peekc == '(')              /*)*/
+!      return (parse_matched_pair (qc, open, close, lenp, 0));
+      }
+  
+--- 4086,4090 ----
+        shell_ungetc (peekc);
+        if (peekc == '(')              /*)*/
+!      return (parse_matched_pair (qc, open, close, lenp, P_ARITH));
+      }
+  
+***************
+*** 4501,4505 ****
+  
+    exp_lineno = line_number;
+!   ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0);
+    rval = 1;
+    if (ttok == &matched_pair_error)
+--- 4512,4516 ----
+  
+    exp_lineno = line_number;
+!   ttok = parse_matched_pair (0, '(', ')', &ttoklen, P_ARITH);
+    rval = 1;
+    if (ttok == &matched_pair_error)
+***************
+*** 5016,5020 ****
+               }
+             else
+!              ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+--- 5030,5034 ----
+               }
+             else
+!              ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARITH);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+*** ../bash-5.2.6/y.tab.c      2022-11-02 10:36:54.000000000 -0400
+--- y.tab.c    2022-11-02 10:55:58.000000000 -0400
+***************
+*** 5924,5927 ****
+--- 5924,5928 ----
+  #define P_ARRAYSUB   0x0020  /* parsing a [...] array subscript for 
assignment */
+  #define P_DOLBRACE   0x0040  /* parsing a ${...} construct */
++ #define P_ARITH              0x0080  /* parsing a $(( )) arithmetic 
expansion */
+  
+  /* Lexical state while parsing a grouping construct or $(...). */
+***************
+*** 6222,6225 ****
+--- 6223,6229 ----
+         else if ((flags & (P_ARRAYSUB|P_DOLBRACE)) && (tflags & LEX_WASDOL) 
&& (ch == '(' || ch == '{' || ch == '[')) /* ) } ] */
+           goto parse_dollar_word;
++        else if ((flags & P_ARITH) && (tflags & LEX_WASDOL) && ch == '(') 
/*)*/
++          /* $() inside $(( ))/$[ ] */
++          goto parse_dollar_word;
+  #if defined (PROCESS_SUBSTITUTION)
+         /* XXX - technically this should only be recognized at the start of
+***************
+*** 6252,6256 ****
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, 
P_FIRSTCLOSE|P_DOLBRACE|rflags);
+         else if (ch == '[')           /* ] */
+!          nestret = parse_matched_pair (0, '[', ']', &nestlen, rflags);
+  
+         CHECK_NESTRET_ERROR ();
+--- 6256,6260 ----
+           nestret = parse_matched_pair (0, '{', '}', &nestlen, 
P_FIRSTCLOSE|P_DOLBRACE|rflags);
+         else if (ch == '[')           /* ] */
+!          nestret = parse_matched_pair (0, '[', ']', &nestlen, 
rflags|P_ARITH);
+  
+         CHECK_NESTRET_ERROR ();
+***************
+*** 6391,6395 ****
+        shell_ungetc (peekc);
+        if (peekc == '(')              /*)*/
+!      return (parse_matched_pair (qc, open, close, lenp, 0));
+      }
+  
+--- 6395,6399 ----
+        shell_ungetc (peekc);
+        if (peekc == '(')              /*)*/
+!      return (parse_matched_pair (qc, open, close, lenp, P_ARITH));
+      }
+  
+***************
+*** 6812,6816 ****
+  
+    exp_lineno = line_number;
+!   ttok = parse_matched_pair (0, '(', ')', &ttoklen, 0);
+    rval = 1;
+    if (ttok == &matched_pair_error)
+--- 6816,6820 ----
+  
+    exp_lineno = line_number;
+!   ttok = parse_matched_pair (0, '(', ')', &ttoklen, P_ARITH);
+    rval = 1;
+    if (ttok == &matched_pair_error)
+***************
+*** 7327,7331 ****
+               }
+             else
+!              ttok = parse_matched_pair (cd, '[', ']', &ttoklen, 0);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+--- 7331,7335 ----
+               }
+             else
+!              ttok = parse_matched_pair (cd, '[', ']', &ttoklen, P_ARITH);
+             if (ttok == &matched_pair_error)
+               return -1;              /* Bail immediately. */
+*** /fs1/chet/scratch/bash-5.2.6/builtins/evalstring.c 2022-07-18 
14:46:56.000000000 -0400
+--- builtins/evalstring.c      2022-10-18 10:57:51.000000000 -0400
+***************
+*** 432,435 ****
+--- 432,437 ----
+        if (parse_command () == 0)
+       {
++        int local_expalias, local_alflag;
++ 
+         if ((flags & SEVAL_PARSEONLY) || (interactive_shell == 0 && 
read_but_dont_execute))
+           {
+***************
+*** 508,511 ****
+--- 510,526 ----
+  #endif /* ONESHOT */
+  
++            /* We play tricks in the parser and command_substitute() turning
++               expand_aliases on and off depending on which parsing pass and
++               whether or not we're in posix mode. This only matters for
++               parsing, and we let the higher layers deal with that. We just
++               want to ensure that expand_aliases is set to the appropriate
++               global value when we go to execute this command, so we save
++               and restore it around the execution (we don't restore it if
++               the global value of the flag (expaliases_flag) changes). */
++            local_expalias = expand_aliases;
++            local_alflag = expaliases_flag;
++            if (subshell_environment & SUBSHELL_COMSUB)
++              expand_aliases = expaliases_flag;
++ 
+             /* See if this is a candidate for $( <file ). */
+             if (startup_state == 2 &&
+***************
+*** 525,528 ****
+--- 540,547 ----
+             discard_unwind_frame ("pe_dispose");
+  
++            /* If the global value didn't change, we restore what we had. */
++            if ((subshell_environment & SUBSHELL_COMSUB) && local_alflag == 
expaliases_flag)
++              expand_aliases = local_expalias;
++ 
+             if (flags & SEVAL_ONECMD)
+               {
+*** /fs1/chet/scratch/bash-5.2.6/command.h     2021-04-30 15:43:15.000000000 
-0400
+--- command.h  2022-10-18 11:44:31.000000000 -0400
+***************
+*** 115,118 ****
+--- 115,119 ----
+  #define PF_EXPANDRHS 0x20    /* same as W_EXPANDRHS */
+  #define PF_ALLINDS   0x40    /* array, act as if [@] was supplied */
++ #define PF_BACKQUOTE 0x80    /* differentiate `` from $() for 
command_substitute */
+  
+  /* Possible values for subshell_environment */
+*** /fs1/chet/scratch/bash-5.2.6/subst.c       2022-11-02 10:28:10.000000000 
-0400
+--- subst.c    2022-10-20 12:41:07.000000000 -0400
+***************
+*** 7124,7129 ****
+  
+        /* We want to expand aliases on this pass if we are not in posix mode
+!       for backwards compatibility. */
+!       if (expand_aliases)
+          expand_aliases = posixly_correct == 0;
+  
+--- 7133,7142 ----
+  
+        /* We want to expand aliases on this pass if we are not in posix mode
+!       for backwards compatibility. parse_and_execute() takes care of
+!       setting expand_aliases back to the global value when executing the
+!       parsed string. We only do this for $(...) command substitution,
+!       since that is what parse_comsub handles; `` comsubs are processed
+!       using parse.y:parse_matched_pair(). */
+!       if (expand_aliases && (flags & PF_BACKQUOTE) == 0)
+          expand_aliases = posixly_correct == 0;
+  
+***************
+*** 11293,11297 ****
+             {
+               de_backslash (temp);
+!              tword = command_substitute (temp, quoted, 0);
+               temp1 = tword ? tword->word : (char *)NULL;
+               if (tword)
+--- 11306,11310 ----
+             {
+               de_backslash (temp);
+!              tword = command_substitute (temp, quoted, PF_BACKQUOTE);
+               temp1 = tword ? tword->word : (char *)NULL;
+               if (tword)
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 6
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-007.sig and 
new/bash-5.2-patches/bash52-007.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-008 
new/bash-5.2-patches/bash52-008
--- old/bash-5.2-patches/bash52-008     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-008     2022-11-07 17:20:36.000000000 +0100
@@ -0,0 +1,58 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-008
+
+Bug-Reported-by:       Glenn Jackman <glenn.jack...@gmail.com>
+Bug-Reference-ID:      
<CAFC8ewQDx7hzNJzveuJ5o4FWo=ij7mzckijvn_6nxjp504q...@mail.gmail.com>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/bug-bash/2022-10/msg00095.html
+
+Bug-Description:
+
+Array subscript expansion can inappropriately quote brackets if the expression
+contains < or >.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-20221015/subst.c   2022-10-18 10:47:33.000000000 -0500
+--- subst.c    2022-10-20 11:41:07.000000000 -0500
+***************
+*** 3820,3823 ****
+--- 3820,3827 ----
+  #endif
+  
++ /* We don't perform process substitution in arithmetic expressions, so don't
++    bother checking for it. */
++ #define ARITH_EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC || s == '~')
++ 
+  /* If there are any characters in STRING that require full expansion,
+     then call FUNC to expand STRING; otherwise just perform quote
+***************
+*** 4029,4033 ****
+    while (string[i])
+      {
+!       if (EXP_CHAR (string[i]))
+       break;
+        else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"')
+--- 4033,4037 ----
+    while (string[i])
+      {
+!       if (ARITH_EXP_CHAR (string[i]))
+       break;
+        else if (string[i] == '\'' || string[i] == '\\' || string[i] == '"')
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 7
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-008.sig and 
new/bash-5.2-patches/bash52-008.sig differ
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/bash-5.2-patches/bash52-009 
new/bash-5.2-patches/bash52-009
--- old/bash-5.2-patches/bash52-009     1970-01-01 01:00:00.000000000 +0100
+++ new/bash-5.2-patches/bash52-009     2022-11-07 17:20:58.000000000 +0100
@@ -0,0 +1,43 @@
+                            BASH PATCH REPORT
+                            =================
+
+Bash-Release:  5.2
+Patch-ID:      bash52-009
+
+Bug-Reported-by:       Corey Hickey <bugfood...@fatooh.org>
+Bug-Reference-ID:      <134330ef-0ead-d73e-68eb-d58fc51ef...@fatooh.org>
+Bug-Reference-URL:     
https://lists.gnu.org/archive/html/help-bash/2022-10/msg00025.html
+
+Bug-Description:
+
+Bash arithmetic expansion should allow `@' and `*' to be used as associative
+array keys in expressions.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.2-patched/expr.c 2022-07-11 10:03:34.000000000 -0400
+--- expr.c     2022-10-31 10:51:08.000000000 -0400
+***************
+*** 1169,1172 ****
+--- 1169,1174 ----
+  #if defined (ARRAY_VARS)
+    aflag = tflag;     /* use a different variable for now */
++   if (shell_compatibility_level > 51)
++     aflag |= AV_ATSTARKEYS;
+    v = (e == ']') ? array_variable_part (tok, tflag, (char **)0, (int *)0) : 
find_variable (tok);
+  #else
+*** ../bash-5.2/patchlevel.h   2020-06-22 14:51:03.000000000 -0400
+--- patchlevel.h       2020-10-01 11:01:28.000000000 -0400
+***************
+*** 26,30 ****
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 8
+  
+  #endif /* _PATCHLEVEL_H_ */
+--- 26,30 ----
+     looks for to find the patch level (for the sccs version string). */
+  
+! #define PATCHLEVEL 9
+  
+  #endif /* _PATCHLEVEL_H_ */
Binary files old/bash-5.2-patches/bash52-009.sig and 
new/bash-5.2-patches/bash52-009.sig differ

Reply via email to