Compare commits
2 Commits
i8c-stream
...
c8-stream-
Author | SHA1 | Date |
---|---|---|
MSVSphere Packaging Team | df119fd3dc | 1 year ago |
MSVSphere Packaging Team | 9b95d404f0 | 1 year ago |
@ -1,42 +0,0 @@
|
|||||||
From 6d2dcef3427b96c36ddfebf217f774a2c5ecad38 Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lumir Balhar <lbalhar@redhat.com>
|
|
||||||
Date: Wed, 30 Jun 2021 09:27:07 +0200
|
|
||||||
Subject: [PATCH] CVE-2021-33503
|
|
||||||
|
|
||||||
---
|
|
||||||
src/pip/_vendor/urllib3/util/url.py | 8 +++++---
|
|
||||||
1 file changed, 5 insertions(+), 3 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/pip/_vendor/urllib3/util/url.py b/src/pip/_vendor/urllib3/util/url.py
|
|
||||||
index 5fe37a7..addaeb7 100644
|
|
||||||
--- a/src/pip/_vendor/urllib3/util/url.py
|
|
||||||
+++ b/src/pip/_vendor/urllib3/util/url.py
|
|
||||||
@@ -63,12 +63,12 @@ IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT + "$")
|
|
||||||
BRACELESS_IPV6_ADDRZ_RE = re.compile("^" + IPV6_ADDRZ_PAT[2:-2] + "$")
|
|
||||||
ZONE_ID_RE = re.compile("(" + ZONE_ID_PAT + r")\]$")
|
|
||||||
|
|
||||||
-SUBAUTHORITY_PAT = (u"^(?:(.*)@)?(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
|
|
||||||
+_HOST_PORT_PAT = ("^(%s|%s|%s)(?::([0-9]{0,5}))?$") % (
|
|
||||||
REG_NAME_PAT,
|
|
||||||
IPV4_PAT,
|
|
||||||
IPV6_ADDRZ_PAT,
|
|
||||||
)
|
|
||||||
-SUBAUTHORITY_RE = re.compile(SUBAUTHORITY_PAT, re.UNICODE | re.DOTALL)
|
|
||||||
+_HOST_PORT_RE = re.compile(_HOST_PORT_PAT, re.UNICODE | re.DOTALL)
|
|
||||||
|
|
||||||
UNRESERVED_CHARS = set(
|
|
||||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789._-~"
|
|
||||||
@@ -374,7 +374,9 @@ def parse_url(url):
|
|
||||||
scheme = scheme.lower()
|
|
||||||
|
|
||||||
if authority:
|
|
||||||
- auth, host, port = SUBAUTHORITY_RE.match(authority).groups()
|
|
||||||
+ auth, _, host_port = authority.rpartition("@")
|
|
||||||
+ auth = auth or None
|
|
||||||
+ host, port = _HOST_PORT_RE.match(host_port).groups()
|
|
||||||
if auth and normalize_uri:
|
|
||||||
auth = _encode_invalid_chars(auth, USERINFO_CHARS)
|
|
||||||
if port == "":
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,34 +0,0 @@
|
|||||||
From 4f0099156245ed2873d6945d5e58db741e15836d Mon Sep 17 00:00:00 2001
|
|
||||||
From: Lumir Balhar <lbalhar@redhat.com>
|
|
||||||
Date: Tue, 8 Jun 2021 09:51:47 +0200
|
|
||||||
Subject: [PATCH] CVE-2021-3572
|
|
||||||
|
|
||||||
---
|
|
||||||
src/pip/_internal/vcs/git.py | 10 ++++++++--
|
|
||||||
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
||||||
|
|
||||||
diff --git a/src/pip/_internal/vcs/git.py b/src/pip/_internal/vcs/git.py
|
|
||||||
index 92b8457..7b3cc4a 100644
|
|
||||||
--- a/src/pip/_internal/vcs/git.py
|
|
||||||
+++ b/src/pip/_internal/vcs/git.py
|
|
||||||
@@ -120,9 +120,15 @@ class Git(VersionControl):
|
|
||||||
output = cls.run_command(['show-ref', rev], cwd=dest,
|
|
||||||
show_stdout=False, on_returncode='ignore')
|
|
||||||
refs = {}
|
|
||||||
- for line in output.strip().splitlines():
|
|
||||||
+ # NOTE: We do not use splitlines here since that would split on other
|
|
||||||
+ # unicode separators, which can be maliciously used to install a
|
|
||||||
+ # different revision.
|
|
||||||
+ for line in output.strip().split("\n"):
|
|
||||||
+ line = line.rstrip("\r")
|
|
||||||
+ if not line:
|
|
||||||
+ continue
|
|
||||||
try:
|
|
||||||
- sha, ref = line.split()
|
|
||||||
+ sha, ref = line.split(" ", maxsplit=2)
|
|
||||||
except ValueError:
|
|
||||||
# Include the offending line to simplify troubleshooting if
|
|
||||||
# this error ever occurs.
|
|
||||||
--
|
|
||||||
2.31.1
|
|
||||||
|
|
@ -1,84 +0,0 @@
|
|||||||
diff -up pip-19.3.1/news/7872.bugfix.pip7873 pip-19.3.1/news/7872.bugfix
|
|
||||||
--- pip-19.3.1/news/7872.bugfix.pip7873 2022-05-24 08:34:03.285054864 -0600
|
|
||||||
+++ pip-19.3.1/news/7872.bugfix 2022-05-24 08:34:03.285054864 -0600
|
|
||||||
@@ -0,0 +1 @@
|
|
||||||
+Prevent an infinite recursion with ``pip wheel`` when ``$TMPDIR`` is within the source directory.
|
|
||||||
diff -up pip-19.3.1/src/pip/_internal/download.py.pip7873 pip-19.3.1/src/pip/_internal/download.py
|
|
||||||
--- pip-19.3.1/src/pip/_internal/download.py.pip7873 2019-10-17 13:32:34.000000000 -0600
|
|
||||||
+++ pip-19.3.1/src/pip/_internal/download.py 2022-05-24 08:35:17.013833331 -0600
|
|
||||||
@@ -350,12 +350,24 @@ def _copy2_ignoring_special_files(src, d
|
|
||||||
|
|
||||||
def _copy_source_tree(source, target):
|
|
||||||
# type: (str, str) -> None
|
|
||||||
+ target_abspath = os.path.abspath(target)
|
|
||||||
+ target_basename = os.path.basename(target_abspath)
|
|
||||||
+ target_dirname = os.path.dirname(target_abspath)
|
|
||||||
+
|
|
||||||
def ignore(d, names):
|
|
||||||
- # Pulling in those directories can potentially be very slow,
|
|
||||||
- # exclude the following directories if they appear in the top
|
|
||||||
- # level dir (and only it).
|
|
||||||
- # See discussion at https://github.com/pypa/pip/pull/6770
|
|
||||||
- return ['.tox', '.nox'] if d == source else []
|
|
||||||
+ skipped = [] # type: List[str]
|
|
||||||
+ if d == source:
|
|
||||||
+ # Pulling in those directories can potentially be very slow,
|
|
||||||
+ # exclude the following directories if they appear in the top
|
|
||||||
+ # level dir (and only it).
|
|
||||||
+ # See discussion at https://github.com/pypa/pip/pull/6770
|
|
||||||
+ skipped += ['.tox', '.nox']
|
|
||||||
+ if os.path.abspath(d) == target_dirname:
|
|
||||||
+ # Prevent an infinite recursion if the target is in source.
|
|
||||||
+ # This can happen when TMPDIR is set to ${PWD}/...
|
|
||||||
+ # and we copy PWD to TMPDIR.
|
|
||||||
+ skipped += [target_basename]
|
|
||||||
+ return skipped
|
|
||||||
|
|
||||||
kwargs = dict(ignore=ignore, symlinks=True) # type: CopytreeKwargs
|
|
||||||
|
|
||||||
diff -up pip-19.3.1/src/pip/_internal/operations/prepare.py.pip7873 pip-19.3.1/src/pip/_internal/operations/prepare.py
|
|
||||||
diff -up pip-19.3.1/tests/data/src/extension/extension.c.pip7873 pip-19.3.1/tests/data/src/extension/extension.c
|
|
||||||
diff -up pip-19.3.1/tests/data/src/extension/setup.py.pip7873 pip-19.3.1/tests/data/src/extension/setup.py
|
|
||||||
--- pip-19.3.1/tests/data/src/extension/setup.py.pip7873 2022-05-24 08:34:03.285054864 -0600
|
|
||||||
+++ pip-19.3.1/tests/data/src/extension/setup.py 2022-05-24 08:34:03.285054864 -0600
|
|
||||||
@@ -0,0 +1,4 @@
|
|
||||||
+from setuptools import Extension, setup
|
|
||||||
+
|
|
||||||
+module = Extension('extension', sources=['extension.c'])
|
|
||||||
+setup(name='extension', version='0.0.1', ext_modules = [module])
|
|
||||||
diff -up pip-19.3.1/tests/functional/test_wheel.py.pip7873 pip-19.3.1/tests/functional/test_wheel.py
|
|
||||||
--- pip-19.3.1/tests/functional/test_wheel.py.pip7873 2019-10-17 13:32:34.000000000 -0600
|
|
||||||
+++ pip-19.3.1/tests/functional/test_wheel.py 2022-05-24 08:34:03.285054864 -0600
|
|
||||||
@@ -1,6 +1,7 @@
|
|
||||||
"""'pip wheel' tests"""
|
|
||||||
import os
|
|
||||||
import re
|
|
||||||
+import sys
|
|
||||||
from os.path import exists
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
@@ -228,6 +229,24 @@ def test_pip_wheel_with_user_set_in_conf
|
|
||||||
assert "Successfully built withpyproject" in result.stdout, result.stdout
|
|
||||||
|
|
||||||
|
|
||||||
+@pytest.mark.skipif(sys.platform.startswith('win'),
|
|
||||||
+ reason='The empty extension module does not work on Win')
|
|
||||||
+def test_pip_wheel_ext_module_with_tmpdir_inside(script, data, common_wheels):
|
|
||||||
+ tmpdir = data.src / 'extension/tmp'
|
|
||||||
+ tmpdir.mkdir()
|
|
||||||
+ script.environ['TMPDIR'] = str(tmpdir)
|
|
||||||
+
|
|
||||||
+ # To avoid a test dependency on a C compiler, we set the env vars to "noop"
|
|
||||||
+ # The .c source is empty anyway
|
|
||||||
+ script.environ['CC'] = script.environ['LDSHARED'] = str('true')
|
|
||||||
+
|
|
||||||
+ result = script.pip(
|
|
||||||
+ 'wheel', data.src / 'extension',
|
|
||||||
+ '--no-index', '-f', common_wheels
|
|
||||||
+ )
|
|
||||||
+ assert "Successfully built extension" in result.stdout, result.stdout
|
|
||||||
+
|
|
||||||
+
|
|
||||||
@pytest.mark.network
|
|
||||||
def test_pep517_wheels_are_not_confused_with_other_files(script, tmpdir, data):
|
|
||||||
"""Check correct wheels are copied. (#6196)
|
|
Loading…
Reference in new issue