From 66a6e2c194c16acc9227c2be0d297801a0705bd8 Mon Sep 17 00:00:00 2001 From: chenhaxing Date: Sat, 17 Dec 2022 16:53:18 +0800 Subject: [PATCH] fix util.parse_url function traceback when port have leading zeros --- backport-strip-leading-zeros-form-ports.patch | 45 +++++++++++++++++++ python-urllib3.spec | 6 ++- 2 files changed, 50 insertions(+), 1 deletion(-) create mode 100644 backport-strip-leading-zeros-form-ports.patch diff --git a/backport-strip-leading-zeros-form-ports.patch b/backport-strip-leading-zeros-form-ports.patch new file mode 100644 index 0000000..1effc91 --- /dev/null +++ b/backport-strip-leading-zeros-form-ports.patch @@ -0,0 +1,45 @@ +From 955da4d03eaa6785aef40a34f440a67d736a4793 Mon Sep 17 00:00:00 2001 +From: Seth Michael Larson +Date: Tue, 22 Nov 2022 17:59:57 +0000 +Subject: [PATCH] [1.26] Strip leading zeros from ports + +Co-authored-by: Bastian Venthur +Co-authored-by: Hasan Ramezani + +Conflict:NA +Reference:https://github.com/urllib3/urllib3/commit/955da4d03eaa6785aef40a34f440a67d736a4793 +--- + src/urllib3/util/url.py | 2 +- + test/test_util.py | 4 ++++ + 2 files changed, 5 insertions(+), 1 deletion(-) + +diff --git a/src/urllib3/util/url.py b/src/urllib3/util/url.py +index 81a03da..8964cef 100644 +--- a/src/urllib3/util/url.py ++++ b/src/urllib3/util/url.py +@@ -63,7 +63,7 @@ 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")\]$") + +-_HOST_PORT_PAT = ("^(%s|%s|%s)(?::([0-9]{0,5}))?$") % ( ++_HOST_PORT_PAT = ("^(%s|%s|%s)(?::0*([0-9]{0,5}))?$") % ( + REG_NAME_PAT, + IPV4_PAT, + IPV6_ADDRZ_PAT, +diff --git a/test/test_util.py b/test/test_util.py +index 562c106..f6c8b43 100644 +--- a/test/test_util.py ++++ b/test/test_util.py +@@ -343,6 +343,10 @@ class TestUtil(object): + with pytest.raises(LocationParseError): + parse_url("https://www.google.com:-80/") + ++ def test_parse_url_remove_leading_zeros(self): ++ url = parse_url("https://example.com:0000000000080") ++ assert url.port == 80 ++ + def test_Url_str(self): + U = Url("http", host="google.com") + assert str(U) == U.url +-- +2.27.0 diff --git a/python-urllib3.spec b/python-urllib3.spec index 2a8829c..cba28ae 100644 --- a/python-urllib3.spec +++ b/python-urllib3.spec @@ -3,7 +3,7 @@ Name: python-%{srcname} Version: 1.26.12 -Release: 1 +Release: 2 Summary: Sanity-friendly HTTP client for Python License: MIT URL: https://urllib3.readthedocs.io @@ -12,6 +12,7 @@ Source1: ssl_match_hostname_py3.py Patch0001: remove_mock.patch Patch6000: backport-CVE-2021-28363.patch +Patch6001: backport-strip-leading-zeros-form-ports.patch BuildArch: noarch @@ -77,6 +78,9 @@ PYTHONPATH=%{buildroot}%{python3_sitelib}:%{python3_sitelib} %{__python3} -m pyt %{python3_sitelib}/urllib3-*.egg-info %changelog +* Sat Dec 17 2022 chenhaixing - 1.26.12-2 +- DESC:fix util.parse_url function traceback when port have leading zeros + * Sun Sep 04 2022 tianlijing - 1.26.12-1 - update to 1.26.12 -- Gitee