commit: 2a103afad637fb46659a8b1d6ef048be8721b13b
Author: Aliaksei Urbanski <aliaksei.urbanski <AT> gmail <DOT> com>
AuthorDate: Mon Jun 24 22:32:22 2024 +0000
Commit: Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Mon Jun 24 23:01:45 2024 +0000
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2a103afa
dev-python/js2py: revbump to 0.74-r1
These changes:
- fix CVE-2024-28397
- fix ignoring of test failures
- restrict the test feature since
multiple tests are broken
Bug: https://bugs.gentoo.org/831356
Signed-off-by: Aliaksei Urbanski <aliaksei.urbanski <AT> gmail.com>
Closes: https://github.com/gentoo/gentoo/pull/37285
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>
.../js2py/files/js2py-0.74-CVE-2024-28397.patch | 21 +++++++++++++++++++
.../{js2py-0.74.ebuild => js2py-0.74-r1.ebuild} | 24 ++++++++++++++--------
2 files changed, 36 insertions(+), 9 deletions(-)
diff --git a/dev-python/js2py/files/js2py-0.74-CVE-2024-28397.patch
b/dev-python/js2py/files/js2py-0.74-CVE-2024-28397.patch
new file mode 100644
index 000000000000..c8ecfab22485
--- /dev/null
+++ b/dev-python/js2py/files/js2py-0.74-CVE-2024-28397.patch
@@ -0,0 +1,21 @@
+# https://nvd.nist.gov/vuln/detail/CVE-2024-28397
+#
https://github.com/Marven11/CVE-2024-28397-js2py-Sandbox-Escape/blob/main/patch.txt
+# https://github.com/PiotrDabkowski/Js2Py/pull/323
+# https://github.com/Marven11/Js2Py/commit/56e244eb
+
+Author: Marven11 <[email protected]>
+Date: Fri, 1 Mar 2024 12:53:58 +0800
+
+diff --git a/js2py/constructors/jsobject.py b/js2py/constructors/jsobject.py
+index c4e0ada3..b1806ea6 100644
+--- a/js2py/constructors/jsobject.py
++++ b/js2py/constructors/jsobject.py
+@@ -49,7 +49,7 @@ def getOwnPropertyNames(obj):
+ raise MakeError(
+ 'TypeError',
+ 'Object.getOwnPropertyDescriptor called on non-object')
+- return obj.own.keys()
++ return list(obj.own.keys())
+
+ def create(obj):
+ if not (obj.is_object() or obj.is_null()):
diff --git a/dev-python/js2py/js2py-0.74.ebuild
b/dev-python/js2py/js2py-0.74-r1.ebuild
similarity index 63%
rename from dev-python/js2py/js2py-0.74.ebuild
rename to dev-python/js2py/js2py-0.74-r1.ebuild
index 22032fcf8e3b..a23e6913a497 100644
--- a/dev-python/js2py/js2py-0.74.ebuild
+++ b/dev-python/js2py/js2py-0.74-r1.ebuild
@@ -1,4 +1,4 @@
-# Copyright 1999-2023 Gentoo Authors
+# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
@@ -6,18 +6,19 @@ EAPI=8
DISTUTILS_USE_PEP517=setuptools
PYPI_NO_NORMALIZE=1
PYPI_PN="Js2Py"
-PYTHON_COMPAT=( python3_{9..11} )
+PYTHON_COMPAT=( python3_{10..11} )
inherit distutils-r1 pypi
DESCRIPTION="JavaScript to Python Translator & JavaScript interpreter in
Python"
-HOMEPAGE="http://piter.io/projects/js2py/
- https://github.com/PiotrDabkowski/Js2Py/
+HOMEPAGE="http://piter.io/projects/js2py
+ https://github.com/PiotrDabkowski/Js2Py
https://pypi.org/project/Js2Py/"
LICENSE="MIT"
SLOT="0"
KEYWORDS="amd64 ~arm arm64 ~hppa ~ia64 ~mips ~ppc ~ppc64 ~s390 ~sparc x86"
+RESTRICT="test"
RDEPEND="
>=dev-python/pyjsparser-2.5.1[${PYTHON_USEDEP}]
@@ -25,15 +26,20 @@ RDEPEND="
>=dev-python/six-1.10.0[${PYTHON_USEDEP}]
"
+PATCHES=(
+ "${FILESDIR}"/${P}-CVE-2024-28397.patch
+)
+
python_test() {
pushd ./tests >/dev/null || die
- # Tests require "node_failed.txt" file where the logs are kept
- if [[ -f ./node_failed.txt ]] ; then
- rm ./node_failed.txt || die
- fi
-
+ # run.py requires "node_failed.txt" file
touch ./node_failed.txt || die
+
+ # https://bugs.gentoo.org/831356
+ # make run.py return a non-zero exit code if any test failed
+ echo 'sys.exit(len(FAILING))' >> ./run.py || die
+
"${EPYTHON}" ./run.py || die "tests failed with ${EPYTHON}"
popd >/dev/null || die