summaryrefslogtreecommitdiff
path: root/aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
diff options
context:
space:
mode:
authorPÁLI Gábor János <pali.gabor@gmail.com>2023-08-03 10:10:44 +0200
committerPÁLI Gábor János <pali.gabor@gmail.com>2023-09-16 17:58:03 +0200
commit89279d87c5d3e0ea330be1f927e3f3bc59dbc2a7 (patch)
tree353bc9a026d0140151e760efbc4f6a6a6b24a020 /aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
parent084335e136581edc28137b152cc559778224570e (diff)
downloadfreebsd-wifibox-alpine-89279d87c5d3e0ea330be1f927e3f3bc59dbc2a7.zip
Update to Linux 6.1 and Alpine 3.18
- Update base-layout to 3.4.3 - Update busybox to 1.36.1 - Update iptables to 1.8.9 - Update linux-lts to 6.1.53 - Update to openrc to 0.48 - Update rtl8821ce to snapshot of 20230915 - Replace rtwB88 with a third-party driver - Update rtw89 to snapshot of 20230913 - Import wpa_supplicant fixes from Arch Linux
Diffstat (limited to 'aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch')
-rw-r--r--aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch88
1 files changed, 0 insertions, 88 deletions
diff --git a/aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch b/aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
deleted file mode 100644
index 3527fa5..0000000
--- a/aports/busybox/0016-ash-don-t-read-past-end-of-var-in-subvareval-for-bas.patch
+++ /dev/null
@@ -1,88 +0,0 @@
-From fa52ac9781f479de8ab4d8526276244c0a0471f4 Mon Sep 17 00:00:00 2001
-From: =?UTF-8?q?S=C3=B6ren=20Tempel?= <soeren@soeren-tempel.net>
-Date: Mon, 28 Feb 2022 08:36:50 +0100
-Subject: [PATCH] ash: don't read past end of var in subvareval for bash
- substitutions
-MIME-Version: 1.0
-Content-Type: text/plain; charset=UTF-8
-Content-Transfer-Encoding: 8bit
-
-Without this patch, BusyBox handles bash pattern substitutions without
-a terminating '/' character incorrectly.
-
-Consider the following shell script:
-
- _bootstrapver=5.0.211-r0
- _referencesdir="/usr/${_bootstrapver/-*}/Sources"
- echo $_referencesdir
-
-This should output `/usr/5.0.211/Sources`. However, without this patch
-it instead outputs `/usr/5.0.211Sources`. This is due to the fact that
-BusyBox expects the bash pattern substitutions to always be terminated
-with a '/' (at least in this part of subvareval) and thus reads passed
-the substitution itself and consumes the '/' character which is part of
-the literal string. If there is no '/' after the substitution then
-BusyBox might perform an out-of-bounds read under certain circumstances.
-
-When replacing the bash pattern substitution with `${_bootstrapver/-*/}`,
-or with this patch applied, ash outputs the correct value.
-
-Signed-off-by: Sören Tempel <soeren@soeren-tempel.net>
-Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
----
- shell/ash.c | 4 ++++
- shell/ash_test/ash-vars/var_bash_repl_unterminated.right | 1 +
- shell/ash_test/ash-vars/var_bash_repl_unterminated.tests | 2 ++
- shell/hush_test/hush-vars/var_bash_repl_unterminated.right | 1 +
- shell/hush_test/hush-vars/var_bash_repl_unterminated.tests | 2 ++
- 5 files changed, 10 insertions(+)
- create mode 100644 shell/ash_test/ash-vars/var_bash_repl_unterminated.right
- create mode 100755 shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
- create mode 100644 shell/hush_test/hush-vars/var_bash_repl_unterminated.right
- create mode 100755 shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-
-diff --git a/shell/ash.c b/shell/ash.c
-index adb0f223a..54335c5dd 100644
---- a/shell/ash.c
-+++ b/shell/ash.c
-@@ -7081,6 +7081,10 @@ subevalvar(char *start, char *str, int strloc,
- *repl = '\0';
- break;
- }
-+ if ((unsigned char)*repl == CTLENDVAR) { /* ${v/pattern} (no trailing /, no repl) */
-+ repl = NULL;
-+ break;
-+ }
- /* Handle escaped slashes, e.g. "${v/\//_}" (they are CTLESC'ed by this point) */
- if ((unsigned char)*repl == CTLESC && repl[1])
- repl++;
-diff --git a/shell/ash_test/ash-vars/var_bash_repl_unterminated.right b/shell/ash_test/ash-vars/var_bash_repl_unterminated.right
-new file mode 100644
-index 000000000..5bff3a6fa
---- /dev/null
-+++ b/shell/ash_test/ash-vars/var_bash_repl_unterminated.right
-@@ -0,0 +1 @@
-+b/d
-diff --git a/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests b/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
-new file mode 100755
-index 000000000..c9513343d
---- /dev/null
-+++ b/shell/ash_test/ash-vars/var_bash_repl_unterminated.tests
-@@ -0,0 +1,2 @@
-+a=b-c
-+echo ${a/-*}/d
-diff --git a/shell/hush_test/hush-vars/var_bash_repl_unterminated.right b/shell/hush_test/hush-vars/var_bash_repl_unterminated.right
-new file mode 100644
-index 000000000..5bff3a6fa
---- /dev/null
-+++ b/shell/hush_test/hush-vars/var_bash_repl_unterminated.right
-@@ -0,0 +1 @@
-+b/d
-diff --git a/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests b/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-new file mode 100755
-index 000000000..c9513343d
---- /dev/null
-+++ b/shell/hush_test/hush-vars/var_bash_repl_unterminated.tests
-@@ -0,0 +1,2 @@
-+a=b-c
-+echo ${a/-*}/d