Commit graph

109660 commits

Author SHA1 Message Date
Serhiy Storchaka
8d1b3dfa09
[3.9] gh-135462: Fix quadratic complexity in processing special input in HTMLParser (GH-135464) (GH-135486)
Some checks failed
Tests / Check for source changes (push) Has been cancelled
Tests / Check if the ABI has changed (push) Has been cancelled
Tests / Check if generated files are up to date (push) Has been cancelled
Tests / Windows (x86) (push) Has been cancelled
Tests / Windows (x64) (push) Has been cancelled
Tests / macOS (push) Has been cancelled
Tests / Ubuntu (push) Has been cancelled
Tests / Ubuntu SSL tests with OpenSSL (push) Has been cancelled
End-of-file errors are now handled according to the HTML5 specs --
comments and declarations are automatically closed, tags are ignored.
(cherry picked from commit 6eb6c5dbfb)
2025-07-03 23:06:00 +02:00
Łukasz Langa
4f28afe545
[3.9] gh-135374: Update the bundled copy of setuptools to 79.0.1 (#135397)
Some checks failed
Tests / Check for source changes (push) Has been cancelled
Verify bundled pip and setuptools / verify (push) Has been cancelled
Tests / Check if the ABI has changed (push) Has been cancelled
Tests / Check if generated files are up to date (push) Has been cancelled
Tests / Windows (x86) (push) Has been cancelled
Tests / Windows (x64) (push) Has been cancelled
Tests / macOS (push) Has been cancelled
Tests / Ubuntu (push) Has been cancelled
Tests / Ubuntu SSL tests with OpenSSL (push) Has been cancelled
2025-06-11 18:10:39 +02:00
Łukasz Langa
f690a6f1c2
Post 3.9.23 2025-06-03 21:14:38 +02:00
Łukasz Langa
865270262a
Python 3.9.23 2025-06-03 20:47:52 +02:00
Łukasz Langa
920a1c30dd
Reword 3.9.23 notable changes to reflect status of backports 2025-06-03 20:33:38 +02:00
T. Wouters
dd8f187d07
[3.9] gh-135034: Normalize link targets in tarfile, add os.path.realpath(strict='allow_missing') (GH-135037) (GH-135084)
Addresses CVEs 2024-12718, 2025-4138, 2025-4330, and 2025-4517.
(cherry picked from commit 3612d8f517)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-06-03 19:02:50 +02:00
Miss Islington (bot)
24eaf53bc6
[3.9] gh-128840: Fix parsing long IPv6 addresses with embedded IPv4 address (GH-134836) (GH-135090)
(cherry picked from commit d83576bf48)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-06-03 16:27:03 +02:00
Miss Islington (bot)
8e318728c6
[3.9] gh-123409: fix IPv6Address.reverse_pointer for IPv4-mapped addresses (GH-123419) (GH-135085)
Fix functionality that was broken with better textual representation for IPv4-mapped addresses (gh-87799)
(cherry picked from commit 77a2fb4bf1)

Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2025-06-03 16:08:20 +02:00
Miss Islington (bot)
78394a612b
[3.9] gh-128840: Limit the number of parts in IPv6 address parsing (GH-128841) (GH-134615)
Limit length of IP address string to 39

(cherry picked from commit 47f1161d3a)

Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-06-03 15:55:59 +02:00
Miss Islington (bot)
65f2e24040
[3.9] gh-87799: Improve the textual representation of IPv4-mapped IPv6 addresses (GH-29345) (GH-135078)
Represent IPv4-mapped IPv6 address as xxxd.d.d.d,
where the 'x's are the hexadecimal values
of the six high-order 16-bit pieces of the address,
and the 'd's are the decimal values
of the four low-order 8-bit pieces of the address
(standard IPv4 representation).

(cherry picked from commit f22bf8e3cf)

Co-authored-by: opavliuk <40970635+opavlyuk@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Andrew Svetlov <andrew.svetlov@gmail.com>
2025-06-03 15:45:59 +02:00
Łukasz Langa
00af9794dd
[3.9] bpo-43757: Make pathlib use os.path.realpath() to resolve symlinks in a path (GH-25264) (GH-135035)
Also adds a new "strict" argument to realpath() to avoid changing the default behaviour of pathlib while sharing the implementation.

(cherry-picked from commit baecfbd849)

Co-authored-by: Barney Gale <barney.gale@gmail.com>
2025-06-02 18:28:09 +02:00
Miss Islington (bot)
03ac445b11
[3.9] gh-134062: Fix hash collisions in IPv4Network and IPv6Network (GH-134063) (GH-134481)
(cherry picked from commit f3fc0c16e0)

Co-authored-by: Mike Salvatore <mike.s.salvatore@gmail.com>
2025-06-02 18:00:18 +02:00
Serhiy Storchaka
8d35fd1b34
[3.9] gh-133767: Fix use-after-free in the unicode-escape decoder with an error handler (GH-129648) (GH-133944) (#134346)
* [3.9] gh-133767: Fix use-after-free in the unicode-escape decoder with an error handler (GH-129648) (GH-133944)

If the error handler is used, a new bytes object is created to set as
the object attribute of UnicodeDecodeError, and that bytes object then
replaces the original data. A pointer to the decoded data will became invalid
after destroying that temporary bytes object. So we need other way to return
the first invalid escape from _PyUnicode_DecodeUnicodeEscapeInternal().

_PyBytes_DecodeEscape() does not have such issue, because it does not
use the error handlers registry, but it should be changed for compatibility
with _PyUnicode_DecodeUnicodeEscapeInternal().
(cherry picked from commit 9f69a58623)
(cherry picked from commit 6279eb8c07)
(cherry picked from commit a75953b347)
(cherry picked from commit 0c33e5baed)
(cherry picked from commit 8b528cacbb)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2025-06-02 17:58:01 +02:00
Brian Schubert
d4df3c55e4
[3.9] gh-80222: Fix email address header folding with long quoted-string (GH-122753) (GH-129111) (GH-132371)
Email generators using email.policy.default could incorrectly omit the
quote ('"') characters from a quoted-string during header refolding,
leading to invalid address headers and enabling header spoofing. This
change restores the quote characters on a bare-quoted-string as the
header is refolded, and escapes backslash and quote chars in the string.

(cherry picked from commit 5aaf416858)
(cherry picked from commit a4ef689ce6)

Co-authored-by: R. David Murray <rdmurray@bitdance.com>
Co-authored-by: Mike Edmunds <medmunds@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-06-02 17:57:06 +02:00
Łukasz Langa
558e27abf1
Post 3.9.22 2025-04-08 19:30:37 +02:00
Łukasz Langa
05c5549224
Python 3.9.22 2025-04-08 17:21:55 +02:00
Seth Michael Larson
12deea5acf
[3.9] gh-131809: Upgrade vendored expat to 2.7.1 (GH-132192) (#132242)
(cherry picked from commit c0de650024)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-04-08 11:36:44 +02:00
Seth Michael Larson
8ad2d88ebd
[3.9] gh-131261: Update libexpat to 2.7.0 (CVE-2024-8176) (GH-131272) (GH-131364)
(cherry picked from commit bb0268f60d)
(cherry picked from commit 6af54d298d)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-04-03 18:40:35 +02:00
Petr Viktorin
9a31386eec
[3.9] gh-121284: Fix email address header folding with parsed encoded-word (GH-122754) (GH-131412)
Email generators using email.policy.default may convert an RFC 2047
encoded-word to unencoded form during header refolding. In a structured
header, this could allow 'specials' chars outside a quoted-string,
leading to invalid address headers and enabling spoofing. This change
ensures a parsed encoded-word that contains specials is kept as an
encoded-word while the header is refolded.

[Better fix from @bitdancer.]

(cherry picked from commit 295b53df2a)

Co-authored-by: Mike Edmunds <medmunds@gmail.com>
Co-authored-by: R David Murray <rdmurray@bitdance.com>
2025-04-03 18:27:33 +02:00
Miss Islington (bot)
ff4e5c2566
[3.9] gh-105704: Disallow square brackets ([ and ]) in domain names for parsed URLs (GH-129418) (#129530)
(cherry picked from commit d89a5f6a6e)

Co-authored-by: Seth Michael Larson <seth@python.org>
Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2025-02-19 14:36:40 +01:00
Hugo van Kemenade
f116a9c15c
[3.9] gh-119511: Fix a potential denial of service in imaplib (GH-119514) (#130248)
The IMAP4 client could consume an arbitrary amount of memory when trying
to connect to a malicious server, because it read a "literal" data with a
single read(size) call, and BufferedReader.read() allocates the bytes
object of the specified size before reading. Now the IMAP4 client reads data
by chunks, therefore the amount of used memory is limited by the
amount of the data actually been sent by the server.
(cherry picked from commit 735f25c5e3)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2025-02-19 14:31:01 +01:00
Miss Islington (bot)
d80cbdd708
[3.9] gh-119461: Fix ThreadedVSOCKSocketStreamTest (GH-129171) (GH-129440) (#130075)
Fix ThreadedVSOCKSocketStreamTest: if get_cid() returns the host
address or the "any" address, use the local communication address
(loopback): VMADDR_CID_LOCAL.

On Linux 6.9, apparently, the /dev/vsock device is now available but
get_cid() returns VMADDR_CID_ANY (-1).

(cherry picked from commit 45db419c31)
(cherry picked from commit e94dbe4ed8)
(cherry picked from commit c750061047)
(cherry picked from commit cbfe3023e4)

---

Restore the skipUnless removed by GH-119465.

This test can only pass on virtual machines, not actual machines.
Actual machines see:

```
    self.cli.connect((cid, VSOCKPORT))
    ~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^
OSError: [Errno 19] No such device
```

Reproduced on (Linux) Ubuntu 24.04.1 running 6.8.0-52-generic.

(cherry picked from commit 2bd9f9b054)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2025-02-19 14:23:10 +01:00
Hugo van Kemenade
8a417ed4fc
[3.9] gh-122544: Change OS image in GitHub Actions to Ubuntu 22.04 (#122566) (#130295)
Co-authored-by: Damien <81557462+Damien-Chen@users.noreply.github.com>
2025-02-19 14:20:20 +01:00
Miss Islington (bot)
61746a3327
[3.9] gh-107262: Update Tkinter tests for Tcl/Tk 8.6.14 (GH-119322) (#130275)
Co-authored-by: James De Bias <81095953+DBJim@users.noreply.github.com>
Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2025-02-19 10:53:20 +02:00
Petr Viktorin
fe6c43ec39
[3.9] gh-129641: Docs GHA build: use upload-artifact@v4 (GH-129642) (#130114)
Co-authored-by: shallow-beach <96891913+shallow-beach@users.noreply.github.com>
fix (#128077)
2025-02-18 11:15:37 +02:00
Miss Islington (bot)
474f3d3244
[3.9] gh-129509: Add required key to the dummy Read the Docs config file (GH-129510) (#130249)
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2025-02-18 11:07:09 +02:00
Petr Viktorin
8c8a257dbc
[3.9] gh-121277: Allow .. versionadded:: next in docs (GH-121278) (#128117)
Make `versionchanged:: next`` expand to current (unreleased) version.

When a new CPython release is cut, the release manager will replace
all such occurences of "next" with the just-released version.
(See the issue for release-tools and devguide PRs.)

Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
(cherry picked from commit 7d24ea9db3)

gh-121277: Raise nice error on `next` as second argument to deprecated-removed (GH-124623)

(cherry-picked from e349f73a5a)
(cherry-picked from 3.11: f0895aa9c1)
(cherry-picked from 3.10: 8773554b71)
2025-01-23 16:55:08 +01:00
Łukasz Langa
340a82d9cf
Post 3.9.21 2024-12-03 19:25:02 +01:00
Łukasz Langa
f3994ade31
Python 3.9.21 2024-12-03 18:50:13 +01:00
Łukasz Langa
a897b4a46e
[3.9] gh-122792: Make IPv4-mapped IPv6 address properties consistent with IPv4 (GH-122793) (GH-123819) (GH-127571)
Make IPv4-mapped IPv6 address properties consistent with IPv4.
(cherry picked from commit 76a1c5d183)
(cherry picked from commit b58da409aa)

Co-authored-by: Seth Michael Larson <seth@python.org>
2024-12-03 18:42:19 +01:00
Miss Islington (bot)
08830c7042
[3.9] gh-95588: Drop the safety claim from ast.literal_eval docs. (GH-95919) (GH-126729)
It was never really safe and this claim conflicts directly with the big warning in the docs about it being able to crash the interpreter.
(cherry picked from commit 8baef8ae36)

Co-authored-by: Gregory P. Smith <greg@krypto.org>
2024-12-03 17:08:42 +01:00
Seth Michael Larson
6b8f44236a
[3.9] gh-126623: Update libexpat to 2.6.4, make future updates easier (GH-126792) (GH-126800)
(cherry picked from commit 3c99969094)
2024-12-02 16:07:24 +01:00
Victor Stinner
ddca295319
[3.9] gh-103848: Adds checks to ensure that bracketed hosts found by urlsplit are of IPv6 or IPvFuture format (#103849) (#126976)
Co-authored-by: Gregory P. Smith <greg@krypto.org>
(cherry picked from commit 29f348e232)

Co-authored-by: JohnJamesUtley <81572567+JohnJamesUtley@users.noreply.github.com>
2024-12-02 13:36:46 +01:00
Hugo van Kemenade
307a762b02
[3.9] gh-127359: Pin Tcl/Tk to 8 (8.6) for testing macOS (GH-127365) (#127409) 2024-11-30 18:38:35 +02:00
Petr Viktorin
fb0b642bf1
[3.9] gh-113027: Fix test_variable_tzname in test_email (GH-113821) (GH-126477)
Determine the support of the Kyiv timezone by checking the result of
astimezone() which uses the system tz database and not the one
populated by zoneinfo.

(cherry picked from commit 931d7e052e)
2024-11-12 10:26:31 +01:00
Miss Islington (bot)
011fb84db5
[3.9] gh-109396: Fix test_socket.test_hmac_sha1() in FIPS mode (GH-109423) (GH-125107)
Use a longer key: FIPS mode requires at least of at least 112 bits.
The previous key was only 32 bits.

(cherry picked from commit e091b9f20f)
(cherry picked from commit f7bfac4b3d)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-authored-by: Petr Viktorin <encukou@gmail.com>
2024-11-04 16:17:48 +01:00
Victor Stinner
633555735a
[3.9] gh-124651: Quote template strings in venv activation scripts (GH-124712) (GH-126185) (GH-126269) (GH-126301)
(cherry picked from commit ae961ae94b)
2024-11-04 16:16:35 +01:00
Petr Viktorin
bbe8756043
[3.9] gh-125041: gh-90781: test_zlib: For s390x HW acceleration, skip checking the compressed bytes (GH-125042) (#125587)
This backports two commits:

- GH-31096 skipped the tests unconditionally
- GH-125042 skips only the possibly-failing assertion

(cherry picked from commit d522856)
2024-10-28 13:50:42 +01:00
Petr Viktorin
eb1639717b
[3.9] gh-107902: gh-108948: Don't test setting suid/sgid/sticky on systems that don't support them (GH-108368) (GH-109697) (#125576)
On FreeBSD, regular users cannot set the sticky bit. Skip the test if
chmod() fails with EFTYPE error.

Co-authored-by: Victor Stinner <vstinner@python.org>
2024-10-28 13:50:27 +01:00
Petr Viktorin
be988e8aa6
[3.9] gh-89452: GHA: Set --with-dbmliborder to avoid issues with homebrew's gdbm 1.24 (GH-125112) (#125176)
Per https://github.com/python/cpython/issues/89452GH-issuecomment-1116329316,
the issue is fixed in configure for 3.11+, and

> For older Python versions, the workaround is to build with:
>
>     ./configure --with-dbmliborder=gdbm:ndbm

We need this workaround in GitHub Actions, otherwise the tests fail.
(cherry picked from commit 850189a64e)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-10-09 16:06:08 +02:00
Miss Islington (bot)
681e0fa658
[3.9] gh-100454: Fix running SSL tests with OpenSSL 3.1+ (GH-100456) (GH-125186)
This fixes Ubuntu pipeline with OpenSSL 3.1+

(cherry picked from commit 333c7dccd8)

Co-authored-by: Dimitri John Ledkov <19779+xnox@users.noreply.github.com>
Co-authored-by: Illia Volochii <illia.volochii@gmail.com>
2024-10-09 15:41:22 +02:00
Łukasz Langa
8b9a8e0e08
Post 3.9.20. 2024-09-06 22:34:30 +02:00
Łukasz Langa
8c3f7946ec
Python 3.9.20 2024-09-06 21:03:56 +02:00
Petr Viktorin
ee953f2b8f
[3.9] [CVE-2023-27043] gh-102988: Reject malformed addresses in email.parseaddr() (GH-111116) (#123769)
Detect email address parsing errors and return empty tuple to
indicate the parsing error (old API). Add an optional 'strict'
parameter to getaddresses() and parseaddr() functions. Patch by
Thomas Dwyer.

(cherry picked from commit 4a153a1d3b)

Co-authored-by: Victor Stinner <vstinner@python.org>
Co-Authored-By: Thomas Dwyer <github@tomd.tel>
2024-09-06 13:13:54 +02:00
Seth Michael Larson
c57c4a9667
[3.9] gh-123678: Upgrade libexpat 2.6.3 (#123711)
(cherry picked from commit fdc04ad75a)
2024-09-05 14:27:48 +02:00
Serhiy Storchaka
a5798d0cc7
[3.9] gh-67693: Fix urlunparse() and urlunsplit() for URIs with path starting with multiple slashes and no authority (GH-113563) (#119027)
(cherry picked from commit e237b25a4f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2024-09-05 14:05:43 +02:00
Łukasz Langa
0152431f17
[3.9] gh-112275: Fix HEAD_LOCK deadlock in child process after fork (GH-112336) (#123688)
HEAD_LOCK is called from _PyEval_ReInitThreads->_PyThreadState_DeleteExcept before _PyRuntimeState_ReInitThreads reinit runtime->interpreters.mutex which might be locked before fork.

(cherry picked from commit 522799a05e)

Co-authored-by: ChuBoning <102216855+ChuBoning@users.noreply.github.com>
2024-09-04 22:41:03 +02:00
Miss Islington (bot)
9290419492
[3.9] gh-119690: Fixes buffer type confusion in _winapi.CreateFile and _winapi.CreateNamedPipe audit events (GH-119735) (#123679)
(cherry picked from commit 2e861ac1cd)

Co-authored-by: Steve Dower <steve.dower@python.org>
2024-09-04 18:22:50 +02:00
Miss Islington (bot)
d662e2db26
[3.9] gh-123067: Fix quadratic complexity in parsing "-quoted cookie values with backslashes (GH-123075) (#123107)
This fixes CVE-2024-7592.
(cherry picked from commit 44e458357f)

Co-authored-by: Serhiy Storchaka <storchaka@gmail.com>
2024-09-04 17:49:40 +02:00
Jason R. Coombs
962055268e
[3.9] gh-123270: Replaced SanitizedNames with a more surgical fix. (GH-123354) (#123432)
Applies changes from zipp 3.20.1 and jaraco/zippGH-124
(cherry picked from commit 2231286d78)
(cherry picked from commit 17b77bb414)

Co-authored-by: Jason R. Coombs <jaraco@jaraco.com>
2024-09-04 17:46:48 +02:00