summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGeorgy Yakovlev <gyakovlev@gentoo.org>2022-09-16 13:50:48 -0700
committerGeorgy Yakovlev <gyakovlev@gentoo.org>2022-09-16 13:56:45 -0700
commit74d540b0cf28755b117e35c6e5e7f10ba463e5b0 (patch)
tree2adc031790eedc45d43c8c8daa11d8f1c9a360be /app-shells/ksh/files
parentapp-shells/ksh: sync live ebuild (diff)
downloadgentoo-74d540b0cf28755b117e35c6e5e7f10ba463e5b0.tar.gz
gentoo-74d540b0cf28755b117e35c6e5e7f10ba463e5b0.tar.bz2
gentoo-74d540b0cf28755b117e35c6e5e7f10ba463e5b0.zip
app-shells/ksh: drop 2020.0.0-r1
Signed-off-by: Georgy Yakovlev <gyakovlev@gentoo.org>
Diffstat (limited to 'app-shells/ksh/files')
-rw-r--r--app-shells/ksh/files/CVE-2019-14868.patch89
-rw-r--r--app-shells/ksh/files/ksh-2020.0.0-ensure-user-set.patch30
-rw-r--r--app-shells/ksh/files/ksh-2020.0.0-skip-api-test.patch36
3 files changed, 0 insertions, 155 deletions
diff --git a/app-shells/ksh/files/CVE-2019-14868.patch b/app-shells/ksh/files/CVE-2019-14868.patch
deleted file mode 100644
index d5c80566bafc..000000000000
--- a/app-shells/ksh/files/CVE-2019-14868.patch
+++ /dev/null
@@ -1,89 +0,0 @@
-From c7de8b641266bac7c77942239ac659edfee9ecd2 Mon Sep 17 00:00:00 2001
-From: Kurtis Rader <krader@skepticism.us>
-Date: Thu, 12 Dec 2019 18:46:50 -0800
-Subject: [PATCH] Harden env var imports
-
----
- src/cmd/ksh93/sh/arith.c | 37 ++++++++++++++++++++++-----------
- src/cmd/ksh93/tests/subshell.sh | 23 ++++++++++++++++++++
-
-diff --git a/src/cmd/ksh93/sh/arith.c b/src/cmd/ksh93/sh/arith.c
-index 30b3067590a2..8e68cbdc868a 100644
---- a/src/cmd/ksh93/sh/arith.c
-+++ b/src/cmd/ksh93/sh/arith.c
-@@ -567,19 +567,32 @@ Sfdouble_t sh_strnum(Shell_t *shp, const char *str, char **ptr, int mode) {
- char *last;
-
- if (*str == 0) {
-- if (ptr) *ptr = (char *)str;
-- return 0;
-- }
-- errno = 0;
-- d = number(str, &last, shp->inarith ? 0 : 10, NULL);
-- if (*last) {
-- if (*last != '.' || last[1] != '.') {
-- d = strval(shp, str, &last, arith, mode);
-- Varsubscript = true;
-+ d = 0.0;
-+ last = (char *)str;
-+ } else {
-+ d = number(str, &last, shp->inarith ? 0 : 10, NULL);
-+ if (*last && !shp->inarith && sh_isstate(shp, SH_INIT)) {
-+ // This call is to handle "base#value" literals if we're importing untrusted env vars.
-+ d = number(str, &last, 0, NULL);
-+ }
-+ if (*last) {
-+ if (sh_isstate(shp, SH_INIT)) {
-+ // Initializing means importing untrusted env vars. Since the string does not appear
-+ // to be a recognized numeric literal give up. We can't safely call strval() since
-+ // that allows arbitrary expressions which would create a security vulnerability.
-+ d = 0.0;
-+ } else {
-+ if (*last != '.' || last[1] != '.') {
-+ d = strval(shp, str, &last, arith, mode);
-+ Varsubscript = true;
-+ }
-+ if (!ptr && *last && mode > 0) {
-+ errormsg(SH_DICT, ERROR_exit(1), e_lexbadchar, *last, str);
-+ }
-+ }
-+ } else if (d == 0.0 && *str == '-') {
-+ d = -0.0;
- }
-- if (!ptr && *last && mode > 0) errormsg(SH_DICT, ERROR_exit(1), e_lexbadchar, *last, str);
-- } else if (!d && *str == '-') {
-- d = -0.0;
- }
- if (ptr) *ptr = last;
- return d;
-diff --git a/src/cmd/ksh93/tests/subshell.sh b/src/cmd/ksh93/tests/subshell.sh
-index b63a8051ed5c..3faba475d6de 100644
---- a/src/cmd/ksh93/tests/subshell.sh
-+++ b/src/cmd/ksh93/tests/subshell.sh
-@@ -856,3 +856,26 @@ for exp in 65535 65536
- do got=$($SHELL -c 'x=$(printf "%.*c" '$exp' x); print ${#x}' 2>&1)
- [[ $got == $exp ]] || log_error "large command substitution failed" "$exp" "$got"
- done
-+
-+# ==========
-+# Verify that importing untrusted env vars does not allow evaluating arbitrary expressions but does
-+# recognize all integer literals recognized by ksh.
-+expect=8
-+actual=$(env SHLVL='7' $SHELL -c 'echo $SHLVL')
-+[[ $actual == $expect ]] || log_error "decimal int literal not recognized" "$expect" "$actual"
-+
-+expect=14
-+actual=$(env SHLVL='013' $SHELL -c 'echo $SHLVL')
-+[[ $actual == $expect ]] || log_error "leading zeros int literal not recognized" "$expect" "$actual"
-+
-+expect=4
-+actual=$(env SHLVL='2#11' $SHELL -c 'echo $SHLVL')
-+[[ $actual == $expect ]] || log_error "base#value int literal not recognized" "$expect" "$actual"
-+
-+expect=12
-+actual=$(env SHLVL='16#B' $SHELL -c 'echo $SHLVL')
-+[[ $actual == $expect ]] || log_error "base#value int literal not recognized" "$expect" "$actual"
-+
-+expect=1
-+actual=$(env SHLVL="2#11+x[\$($bin_echo DANGER WILL ROBINSON >&2)0]" $SHELL -c 'echo $SHLVL')
-+[[ $actual == $expect ]] || log_error "expression allowed on env var import" "$expect" "$actual"
diff --git a/app-shells/ksh/files/ksh-2020.0.0-ensure-user-set.patch b/app-shells/ksh/files/ksh-2020.0.0-ensure-user-set.patch
deleted file mode 100644
index 9f5d70f4d33c..000000000000
--- a/app-shells/ksh/files/ksh-2020.0.0-ensure-user-set.patch
+++ /dev/null
@@ -1,30 +0,0 @@
-From cb9f6d3498622b46de021a7f4798512d203747e9 Mon Sep 17 00:00:00 2001
-From: Kurtis Rader <krader@skepticism.us>
-Date: Sun, 1 Sep 2019 15:44:40 -0700
-Subject: [PATCH] Ensure USER is set when unit tests run
-
-Related #1391
----
- src/cmd/ksh93/tests/util/run_test.sh | 9 +++++++++
- 1 file changed, 9 insertions(+)
-
-diff --git a/src/cmd/ksh93/tests/util/run_test.sh b/src/cmd/ksh93/tests/util/run_test.sh
-index 20d24ed1fda..ebc74770cae 100644
---- a/src/cmd/ksh93/tests/util/run_test.sh
-+++ b/src/cmd/ksh93/tests/util/run_test.sh
-@@ -62,6 +62,15 @@ fi
- #
- export OS_NAME=$(uname -s | tr '[A-Z]' '[a-z]')
-
-+#
-+# Make sure $USER is set. A CI/CB environment might not set it.
-+# See https://github.com/att/ast/issues/1391
-+#
-+if [[ -z $USER ]]
-+then
-+ export USER=$(id -un)
-+fi
-+
- # TODO: Enable the `io` test on Travis macOS once we understand why it dies from an abort().
- # I'm not seeing that failure happen on either of my macOS 10.12 or 10.13 systems.
- if [[ $test_name == io && $OS_NAME == darwin && $CI == true ]]
diff --git a/app-shells/ksh/files/ksh-2020.0.0-skip-api-test.patch b/app-shells/ksh/files/ksh-2020.0.0-skip-api-test.patch
deleted file mode 100644
index f832d175454e..000000000000
--- a/app-shells/ksh/files/ksh-2020.0.0-skip-api-test.patch
+++ /dev/null
@@ -1,36 +0,0 @@
-From d89753b5d38482f4a3f17ba3b7d09ab07cfe7419 Mon Sep 17 00:00:00 2001
-From: Kurtis Rader <krader@skepticism.us>
-Date: Sun, 1 Sep 2019 13:47:40 -0700
-Subject: [PATCH] Skip API test if build type != debug
-
-Fixes #1390
----
- src/lib/libast/tests/misc/meson.build | 8 +++++++-
- 1 file changed, 7 insertions(+), 1 deletion(-)
-
-diff --git a/src/lib/libast/tests/misc/meson.build b/src/lib/libast/tests/misc/meson.build
-index 67a178762fa..a4c864428d8 100644
---- a/src/lib/libast/tests/misc/meson.build
-+++ b/src/lib/libast/tests/misc/meson.build
-@@ -10,6 +10,12 @@ tests_to_skip = [
- ['freebsd', 'debug'],
- ]
-
-+# Non-debug build types affect the behavior of `backtrace()`. Which means it will almost certainly
-+# break the "debug" test. See https://github.com/att/ast/issues/1390.
-+if get_option('buildtype') != 'debug'
-+ tests_to_skip += [['*', 'debug']]
-+endif
-+
- foreach test_name: tests
- # If the platform doesn't have an execinfo.h header there is no point in trying to run the
- # debug.c unit test.
-@@ -18,7 +24,7 @@ foreach test_name: tests
- endif
- skip_test = false
- foreach skip : tests_to_skip
-- if system == skip[0] and test_name == skip[1]
-+ if ('*' == skip[0] or system == skip[0]) and test_name == skip[1]
- warning('skipping ' + test_name + ' on ' + system)
- skip_test = true
- # break # Not until meson 0.49