summaryrefslogtreecommitdiffstats
path: root/meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch')
-rw-r--r--meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch b/meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch
new file mode 100644
index 0000000000..72bcaea435
--- /dev/null
+++ b/meta/recipes-devtools/python/python3-setuptools/CVE-2025-47273-pre1.patch
@@ -0,0 +1,54 @@
1From d8390feaa99091d1ba9626bec0e4ba7072fc507a Mon Sep 17 00:00:00 2001
2From: "Jason R. Coombs" <jaraco@jaraco.com>
3Date: Sat, 19 Apr 2025 12:49:55 -0400
4Subject: [PATCH] Extract _resolve_download_filename with test.
5
6Upstream-Status: Backport [https://github.com/pypa/setuptools/commit/d8390feaa99091d1ba9626bec0e4ba7072fc507a]
7CVE: CVE-2025-47273 #Dependency Patch
8Signed-off-by: Vijay Anusuri <vanusuri@mvista.com>
9---
10 setuptools/package_index.py | 20 ++++++++++++++++----
11 1 file changed, 16 insertions(+), 4 deletions(-)
12
13diff --git a/setuptools/package_index.py b/setuptools/package_index.py
14index 00a972d..d460fcb 100644
15--- a/setuptools/package_index.py
16+++ b/setuptools/package_index.py
17@@ -815,9 +815,16 @@ class PackageIndex(Environment):
18 else:
19 raise DistutilsError("Download error for %s: %s" % (url, v)) from v
20
21- def _download_url(self, url, tmpdir):
22- # Determine download filename
23- #
24+ @staticmethod
25+ def _resolve_download_filename(url, tmpdir):
26+ """
27+ >>> du = PackageIndex._resolve_download_filename
28+ >>> root = getfixture('tmp_path')
29+ >>> url = 'https://files.pythonhosted.org/packages/a9/5a/0db.../setuptools-78.1.0.tar.gz'
30+ >>> import pathlib
31+ >>> str(pathlib.Path(du(url, root)).relative_to(root))
32+ 'setuptools-78.1.0.tar.gz'
33+ """
34 name, fragment = egg_info_for_url(url)
35 if name:
36 while '..' in name:
37@@ -828,8 +835,13 @@ class PackageIndex(Environment):
38 if name.endswith('.egg.zip'):
39 name = name[:-4] # strip the extra .zip before download
40
41- filename = os.path.join(tmpdir, name)
42+ return os.path.join(tmpdir, name)
43
44+ def _download_url(self, url, tmpdir):
45+ """
46+ Determine the download filename.
47+ """
48+ filename = self._resolve_download_filename(url, tmpdir)
49 return self._download_vcs(url, filename) or self._download_other(url, filename)
50
51 @staticmethod
52--
532.25.1
54