diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2022-11-08 22:21:43 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2022-11-09 07:00:18 +0100 |
commit | 458c6cc7f8c05cd766aaa02b9468e25a234741d1 (patch) | |
tree | 2565a72f03c5a93658fc44b8c053cbe06222d7b1 /source/a/bash/bash-5.2-patches/bash52-007 | |
parent | e0d8e24a7a1e7d6749c7d4b8af834b657fbe3cad (diff) | |
download | current-458c6cc7f8c05cd766aaa02b9468e25a234741d1.tar.gz current-458c6cc7f8c05cd766aaa02b9468e25a234741d1.tar.xz |
Tue Nov 8 22:21:43 UTC 202220221108222143
a/bash-5.2.009-x86_64-1.txz: Upgraded.
a/glibc-zoneinfo-2022f-noarch-1.txz: Upgraded.
a/sed-4.9-x86_64-1.txz: Upgraded.
ap/mariadb-10.6.11-x86_64-1.txz: Upgraded.
This is a bugfix release.
For more information, see:
https://mariadb.com/kb/en/mariadb-10-6-11-release-notes
d/ccache-4.7.3-x86_64-1.txz: Upgraded.
d/meson-0.64.0-x86_64-1.txz: Upgraded.
d/patchelf-0.17.0-x86_64-1.txz: Upgraded.
kde/bluedevil-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-grub-5.26.3-x86_64-1.txz: Upgraded.
kde/breeze-gtk-5.26.3-x86_64-1.txz: Upgraded.
kde/drkonqi-5.26.3-x86_64-1.txz: Upgraded.
kde/kactivitymanagerd-5.26.3-x86_64-1.txz: Upgraded.
kde/kde-cli-tools-5.26.3-x86_64-1.txz: Upgraded.
kde/kde-gtk-config-5.26.3-x86_64-1.txz: Upgraded.
kde/kdecoration-5.26.3-x86_64-1.txz: Upgraded.
kde/kdeplasma-addons-5.26.3-x86_64-1.txz: Upgraded.
kde/kgamma5-5.26.3-x86_64-1.txz: Upgraded.
kde/khotkeys-5.26.3-x86_64-1.txz: Upgraded.
kde/kinfocenter-5.26.3-x86_64-1.txz: Upgraded.
kde/kmenuedit-5.26.3-x86_64-1.txz: Upgraded.
kde/kpipewire-5.26.3-x86_64-1.txz: Upgraded.
kde/kscreen-5.26.3-x86_64-1.txz: Upgraded.
kde/kscreenlocker-5.26.3-x86_64-1.txz: Upgraded.
kde/ksshaskpass-5.26.3-x86_64-1.txz: Upgraded.
kde/ksystemstats-5.26.3-x86_64-1.txz: Upgraded.
kde/kwallet-pam-5.26.3-x86_64-1.txz: Upgraded.
kde/kwayland-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/kwin-5.26.3-x86_64-1.txz: Upgraded.
kde/kwrited-5.26.3-x86_64-1.txz: Upgraded.
kde/layer-shell-qt-5.26.3-x86_64-1.txz: Upgraded.
kde/libkscreen-5.26.3-x86_64-1.txz: Upgraded.
kde/libksysguard-5.26.3-x86_64-1.txz: Upgraded.
kde/milou-5.26.3-x86_64-1.txz: Upgraded.
kde/oxygen-5.26.3-x86_64-1.txz: Upgraded.
kde/oxygen-sounds-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-browser-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-desktop-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-disks-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-firewall-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-integration-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-nm-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-pa-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-sdk-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-systemmonitor-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-vault-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-workspace-5.26.3-x86_64-1.txz: Upgraded.
kde/plasma-workspace-wallpapers-5.26.3-x86_64-1.txz: Upgraded.
kde/polkit-kde-agent-1-5.26.3-x86_64-1.txz: Upgraded.
kde/powerdevil-5.26.3-x86_64-1.txz: Upgraded.
kde/qqc2-breeze-style-5.26.3-x86_64-1.txz: Upgraded.
kde/sddm-kcm-5.26.3-x86_64-1.txz: Upgraded.
kde/systemsettings-5.26.3-x86_64-1.txz: Upgraded.
kde/xdg-desktop-portal-kde-5.26.3-x86_64-1.txz: Upgraded.
l/Imath-3.1.6-x86_64-1.txz: Upgraded.
l/imagemagick-7.1.0_52-x86_64-1.txz: Upgraded.
l/libspectre-0.2.11-x86_64-1.txz: Upgraded.
n/mutt-2.2.8-x86_64-1.txz: Upgraded.
x/mesa-22.2.3-x86_64-1.txz: Upgraded.
x/wayland-protocols-1.28-noarch-1.txz: Upgraded.
Diffstat (limited to 'source/a/bash/bash-5.2-patches/bash52-007')
-rw-r--r-- | source/a/bash/bash-5.2-patches/bash52-007 | 262 |
1 files changed, 262 insertions, 0 deletions
diff --git a/source/a/bash/bash-5.2-patches/bash52-007 b/source/a/bash/bash-5.2-patches/bash52-007 new file mode 100644 index 000000000..152776f4b --- /dev/null +++ b/source/a/bash/bash-5.2-patches/bash52-007 @@ -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_ */ |