summaryrefslogtreecommitdiff
path: root/core/bash/bash53-003
diff options
context:
space:
mode:
authorrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
committerrawnix ports <ports@rawnix.org>2026-09-26 18:19:05 +0000
commitc82e88dd00d1b0b7fcfb4e5628d99611388cef6f (patch)
tree56d864b5a5c6c145edd96178ae219a8f90e191a6 /core/bash/bash53-003
downloadports-c82e88dd00d1b0b7fcfb4e5628d99611388cef6f.tar.gz
sync 2026-09-26 18:19 UTC
1672 files changed, 151396 insertions(+)
Diffstat (limited to 'core/bash/bash53-003')
-rw-r--r--core/bash/bash53-00382
1 files changed, 82 insertions, 0 deletions
diff --git a/core/bash/bash53-003 b/core/bash/bash53-003
new file mode 100644
index 0000000..0fc6b42
--- /dev/null
+++ b/core/bash/bash53-003
@@ -0,0 +1,82 @@
+ BASH PATCH REPORT
+ =================
+
+Bash-Release: 5.3
+Patch-ID: bash53-003
+
+Bug-Reported-by: Isabella Bosia <izaberina@gmail.com>
+Bug-Reference-ID: <CAAZkfoJhQ1BJ7BGk3-ObctvCJJrW3rp_tWQXT=9rY7kGDvz4uw@mail.gmail.com>
+Bug-Reference-URL: https://lists.gnu.org/archive/html/bug-bash/2025-06/msg00173.html
+
+Bug-Description:
+
+Bash leaves internal quoting in place when expanding array subscripts
+that appear inside array subscripts in an arithmetic context, causing
+expansion failures.
+
+Patch (apply with `patch -p0'):
+
+*** ../bash-5.3-patched/subst.c Sun May 18 15:00:13 2025
+--- subst.c Fri Jul 11 09:48:44 2025
+***************
+*** 3796,3802 ****
+ #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,
+--- 3796,3802 ----
+ #endif
+
+! /* We don't perform process substitution or tilde expansion in arithmetic
+! expressions, so don't bother checking for them. */
+! #define ARITH_EXP_CHAR(s) (s == '$' || s == '`' || s == CTLESC)
+
+ /* If there are any characters in STRING that require full expansion,
+***************
+*** 12216,12219 ****
+--- 12216,12227 ----
+ break;
+ }
++ #if defined (ARRAY_VARS)
++ /* The only special characters that matter here are []~, since those
++ are backslash-quoted in expand_array_subscript but not dequoted
++ by the statement following this one. */
++ if ((quoted & Q_ARITH) && (c == LBRACK || c == RBRACK || c == '~'))
++ ; /* placeholder here */
++ else
++ #endif
+ if (((quoted & (Q_HERE_DOCUMENT|Q_DOUBLE_QUOTES)) || dquote) && (sh_syntaxtab[c] & CBSDQUOTE) == 0)
+ *r++ = '\\';
+*** ../bash-5.3/tests/quotearray.right Thu Nov 10 10:39:56 2022
+--- tests/quotearray.right Thu Jul 10 15:40:27 2025
+***************
+*** 45,49 ****
+ 0
+ 0
+! ./quotearray1.sub: line 68: 0\],b\[1: arithmetic syntax error: invalid arithmetic operator (error token is "\],b\[1")
+ declare -a array
+ 0
+--- 45,49 ----
+ 0
+ 0
+! ./quotearray1.sub: line 68: 0],b[1: arithmetic syntax error: invalid arithmetic operator (error token is "],b[1")
+ declare -a array
+ 0
+*** ../bash-5.3/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_ */