From 98a068344ea611cedbbc524c30ed86ead71c9e0a Mon Sep 17 00:00:00 2001 From: Siteshwar Vashisht Date: Mon, 22 Jan 2024 14:12:49 +0100 Subject: [PATCH] Update to bash-5.2 patchlevel 26 Resolves: #2259619 --- bash-5.2-patch-22.patch | 29 +++++++++++++++++++++ bash-5.2-patch-23.patch | 38 ++++++++++++++++++++++++++++ bash-5.2-patch-24.patch | 56 +++++++++++++++++++++++++++++++++++++++++ bash-5.2-patch-25.patch | 24 ++++++++++++++++++ bash-5.2-patch-26.patch | 23 +++++++++++++++++ bash.spec | 8 ++++-- 6 files changed, 176 insertions(+), 2 deletions(-) create mode 100644 bash-5.2-patch-22.patch create mode 100644 bash-5.2-patch-23.patch create mode 100644 bash-5.2-patch-24.patch create mode 100644 bash-5.2-patch-25.patch create mode 100644 bash-5.2-patch-26.patch diff --git a/bash-5.2-patch-22.patch b/bash-5.2-patch-22.patch new file mode 100644 index 0000000..be5306f --- /dev/null +++ b/bash-5.2-patch-22.patch @@ -0,0 +1,29 @@ +diff --git a/lib/readline/display.c b/lib/readline/display.c +--- a/lib/readline/display.c ++++ b/lib/readline/display.c +@@ -2683,11 +2683,8 @@ rl_forced_update_display (void) + register char *temp; + + if (visible_line) +- { +- temp = visible_line; +- while (*temp) +- *temp++ = '\0'; +- } ++ memset (visible_line, 0, line_size); ++ + rl_on_new_line (); + forced_display++; + (*rl_redisplay_function) (); +diff --git a/patchlevel.h b/patchlevel.h +index 1712b108..e5e8cabd 100644 +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -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 21 ++#define PATCHLEVEL 22 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-23.patch b/bash-5.2-patch-23.patch new file mode 100644 index 0000000..2d1d6a7 --- /dev/null +++ b/bash-5.2-patch-23.patch @@ -0,0 +1,38 @@ +diff --git a/builtins/declare.def b/builtins/declare.def +--- a/builtins/declare.def ++++ b/builtins/declare.def +@@ -420,11 +420,19 @@ declare_internal (list, local_var) + + if (local_var && variable_context && STREQ (name, "-")) + { ++ int o; ++ ++ o = localvar_inherit; ++ localvar_inherit = 0; + var = make_local_variable ("-", 0); +- FREE (value_cell (var)); /* just in case */ +- value = get_current_options (); +- var_setvalue (var, value); +- VSETATTR (var, att_invisible); ++ localvar_inherit = o; ++ ++ if (value_cell (var) == NULL) /* no duplicate instances */ ++ { ++ value = get_current_options (); ++ var_setvalue (var, value); ++ VSETATTR (var, att_invisible); ++ } + NEXT_VARIABLE (); + } + +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -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 22 ++#define PATCHLEVEL 23 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-24.patch b/bash-5.2-patch-24.patch new file mode 100644 index 0000000..641f024 --- /dev/null +++ b/bash-5.2-patch-24.patch @@ -0,0 +1,56 @@ +diff --git a/arrayfunc.c b/arrayfunc.c +--- a/arrayfunc.c ++++ b/arrayfunc.c +@@ -650,7 +650,7 @@ assign_assoc_from_kvlist (var, nlist, h, flags) + continue; + } + +- aval = expand_subscript_string (v, 0); ++ aval = expand_assignment_string_to_string (v, 0); + if (aval == 0) + { + aval = (char *)xmalloc (1); +@@ -842,7 +842,7 @@ assign_compound_array_list (var, nlist, flags) + /* See above; we need to expand the value here */ + if (assoc_p (var)) + { +- val = expand_subscript_string (val, 0); ++ val = expand_assignment_string_to_string (val, 0); + if (val == 0) + { + val = (char *)xmalloc (1); +@@ -1030,7 +1030,7 @@ expand_and_quote_assoc_word (w, type) + nword[i++] = w[ind++]; + nword[i++] = w[ind++]; + +- t = expand_subscript_string (w+ind, 0); ++ t = expand_assignment_string_to_string (w+ind, 0); + s = (t && strchr (t, CTLESC)) ? quote_escapes (t) : t; + value = sh_single_quote (s ? s : ""); + if (s != t) +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -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 23 ++#define PATCHLEVEL 24 + + #endif /* _PATCHLEVEL_H_ */ +diff --git a/subst.c b/subst.c +--- a/subst.c ++++ b/subst.c +@@ -10802,7 +10802,11 @@ expand_subscript_string (string, quoted) + oe = expand_no_split_dollar_star; + ret = (char *)NULL; + ++#if 0 + td.flags = W_NOPROCSUB|W_NOTILDE|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++#else ++ td.flags = W_NOPROCSUB|W_NOSPLIT2; /* XXX - W_NOCOMSUB? */ ++#endif + td.word = savestring (string); /* in case it's freed on error */ + + expand_no_split_dollar_star = 1; diff --git a/bash-5.2-patch-25.patch b/bash-5.2-patch-25.patch new file mode 100644 index 0000000..fb03284 --- /dev/null +++ b/bash-5.2-patch-25.patch @@ -0,0 +1,24 @@ +diff --git a/execute_cmd.c b/execute_cmd.c +--- a/execute_cmd.c ++++ b/execute_cmd.c +@@ -1725,6 +1725,9 @@ execute_in_subshell (command, asynchronous, pipe_in, pipe_out, fds_to_close) + return_code = (return_code == EXECUTION_SUCCESS) ? EXECUTION_FAILURE + : EXECUTION_SUCCESS; + ++ /* Check for terminating signals before we return to our caller, which we ++ expect to exit immediately anyway. */ ++ CHECK_TERMSIG; + + /* If we were explicitly placed in a subshell with (), we need + to do the `shell cleanup' things, such as running traps[0]. */ +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -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 24 ++#define PATCHLEVEL 25 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash-5.2-patch-26.patch b/bash-5.2-patch-26.patch new file mode 100644 index 0000000..00cb9ee --- /dev/null +++ b/bash-5.2-patch-26.patch @@ -0,0 +1,23 @@ +diff --git a/lib/readline/colors.c b/lib/readline/colors.c +--- a/lib/readline/colors.c ++++ b/lib/readline/colors.c +@@ -73,7 +73,7 @@ + static bool is_colored (enum indicator_no type); + static void restore_default_color (void); + +-#define RL_COLOR_PREFIX_EXTENSION "readline-colored-completion-prefix" ++#define RL_COLOR_PREFIX_EXTENSION ".readline-colored-completion-prefix" + + COLOR_EXT_TYPE *_rl_color_ext_list = 0; + +diff --git a/patchlevel.h b/patchlevel.h +--- a/patchlevel.h ++++ b/patchlevel.h +@@ -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 25 ++#define PATCHLEVEL 26 + + #endif /* _PATCHLEVEL_H_ */ diff --git a/bash.spec b/bash.spec index 4e04886..f8d283b 100644 --- a/bash.spec +++ b/bash.spec @@ -1,12 +1,12 @@ #% define beta_tag rc2 -%define patchlevel 21 +%define patchlevel 26 %define baseversion 5.2 %bcond_without tests Version: %{baseversion}.%{patchlevel} Name: bash Summary: The GNU Bourne Again shell -Release: 3%{?dist} +Release: 1%{?dist} License: GPL-3.0-or-later Url: https://www.gnu.org/software/bash Source0: https://ftp.gnu.org/gnu/bash/bash-%{baseversion}.tar.gz @@ -325,6 +325,10 @@ end %{_libdir}/pkgconfig/%{name}.pc %changelog +* Mon Jan 22 2024 Siteshwar Vashisht - 5.2.26-1 +- Update to bash-5.2 patchlevel 26 + Resolves: #2259619 + * Fri Jan 19 2024 Fedora Release Engineering - 5.2.21-3 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild