Commit graph

129093 commits

Author SHA1 Message Date
Miss Islington (bot)
af2f5189a1
[3.14] gh-146333: Fix quadratic regex backtracking in configparser option parsing (GH-146399) (#148287)
gh-146333: Fix quadratic regex backtracking in configparser option parsing (GH-146399)

Use negative lookahead in option regex to prevent backtracking, and to avoid changing logic outside the regexes (since people could use the regex directly).
(cherry picked from commit 7e0a0be409)

Co-authored-by: Joshua Swanson <22283299+joshuaswanson@users.noreply.github.com>
2026-04-12 00:05:10 +00:00
Miss Islington (bot)
4f8a77bf3f
[3.14] gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106) (#148404)
gh-145105: Fix crash in csv.reader with re-entrant iterator (GH-145106)

When a custom iterator calls next() on the same csv.reader from
within __next__, the inner iteration sets self->fields to NULL.
The outer iteration then crashes in parse_save_field() by passing
NULL to PyList_Append.

Add a guard after PyIter_Next() to detect that fields was set to
NULL by a re-entrant call, and raise csv.Error instead of crashing.
(cherry picked from commit 20994b1809)

Co-authored-by: Ramin Farajpour Cami <ramin.blackhat@gmail.com>
2026-04-11 22:46:26 +00:00
Miss Islington (bot)
d6be9fb077
[3.14] gh-146264: Use static HACL deps for static module builds (GH-146265) (#148403)
gh-146264: Use static HACL deps for static module builds (GH-146265)
(cherry picked from commit f445d2e866)

Co-authored-by: Ihar Hrachyshka <ihar.hrachyshka@gmail.com>
2026-04-11 21:54:29 +00:00
Kumar Aditya
6112e2dd44
[3.14] gh-142518: add thread safety docs for dict and set APIs (#148392)
Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-11 21:52:38 +05:30
Miss Islington (bot)
620fb74384
[3.14] gh-148320: document that import sys.monitoring raises ModuleNotFoundError (GH-148365) (#148385)
gh-148320: document that `import sys.monitoring` raises `ModuleNotFoundError` (GH-148365)
(cherry picked from commit d7c9f1877c)

Co-authored-by: Jonathan Dung <jonathandung@yahoo.com>
Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
2026-04-11 15:30:24 +00:00
Kumar Aditya
f36da66c71
[3.14] gh-148037: remove critical section from PyCode_Addr2Line (GH… (#148353)
[3.14] gh-148037: remove critical section from `PyCode_Addr2Line` (GH-148103)
(cherry picked from commit d3b7b93cbb)
2026-04-10 23:59:38 +05:30
Miss Islington (bot)
288cbacfb9
[3.14] gh-148284: Block inlining of gigantic functions in ceval.c for clang 22 (GH-148334) (GH-148349)
gh-148284: Block inlining of gigantic functions in ceval.c for clang 22 (GH-148334)
(cherry picked from commit e007631e99)

Co-authored-by: Ken Jin <kenjin@python.org>
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-11 01:32:26 +08:00
Hugo van Kemenade
429c1d3c19
[3.14] Fix mixed line endings with pre-commit (GH-148336) (#148338)
Co-authored-by: Zachary Ware <zachary.ware@gmail.com>
2026-04-10 18:36:12 +03:00
Miss Islington (bot)
e8f3f7668f
[3.14] gh-145831: email.quoprimime: decode() leaves stray \r when eol='\r\n' (GH-145832) (#148312)
decoded[:-1] only strips one character, leaving a stray \r when eol
is two characters. Fix: decoded[:-len(eol)].
(cherry picked from commit 1a0edb1fa8)

Co-authored-by: Stefan Zetzsche <120379523+stefanzetzsche@users.noreply.github.com>
2026-04-10 08:49:59 -04:00
Miss Islington (bot)
b87590fd27
[3.14] gh-148091: clarify asyncio.Future.cancel(msg) behaviour (GH-148248) (#148299)
gh-148091: clarify asyncio.Future.cancel(msg) behaviour (GH-148248)
(cherry picked from commit 2acb8d9257)

Co-authored-by: Manoj K M <136242596+manoj-k-m@users.noreply.github.com>
2026-04-09 20:51:16 +05:30
Hugo van Kemenade
1f177749c5
[3.14] gh-148254: Use singular "sec" in timeit verbose output (GH-148290) (#148303)
Co-authored-by: gaweng <38250674+gaweng@users.noreply.github.com>
2026-04-09 15:17:55 +00:00
Miss Islington (bot)
1a3c03c3c9
[3.14] gh-148067: Fix typo in asyncio event loop docs: 'signals' -> 'signal' (GH-148073) (#148246)
Co-authored-by: TT <70463940+Herrtian@users.noreply.github.com>
2026-04-09 14:07:55 +00:00
Miss Islington (bot)
bb78ec8fa8
[3.14] gh-148274: properly handle result from PyObject_VisitManagedDict (GH-148275) (#148295)
gh-148274: properly handle result from `PyObject_VisitManagedDict` (GH-148275)
(cherry picked from commit ee2775cfae)

Co-authored-by: Max Bachmann <kontakt@maxbachmann.de>
2026-04-09 13:49:09 +00:00
Miss Islington (bot)
571c337a5d
[3.14] gh-106318: Add example for str.swapcase() method (GH-144575) (#148296)
Co-authored-by: Adorilson Bezerra <adorilson@gmail.com>
2026-04-09 13:39:39 +00:00
Miss Islington (bot)
88fc1e6003
[3.14] gh-148250: Mention str subclasses in PyUnicodeWriter_WriteStr() doc (GH-148251) (#148293)
gh-148250: Mention str subclasses in PyUnicodeWriter_WriteStr() doc (GH-148251)
(cherry picked from commit 8c524503cd)

Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-09 11:59:06 +00:00
Miss Islington (bot)
d31a16e662
[3.14] gh-146646: Document that glob functions suppress OSError (GH-147996) (#148288)
gh-146646: Document that glob functions suppress OSError (GH-147996)
(cherry picked from commit 8000a9de3c)

Co-authored-by: WYSIATI <chester.lee.cold@gmail.com>
2026-04-09 11:00:23 +00:00
Miss Islington (bot)
f46a17b19f
[3.14] gh-70039: smtplib: store the server name in ._host in .connect() (GH-115259) (#148273)
Original patch by gigaplastik, extended with a few more tests.

Addresses gh-70039 and bpo-25852: failure of starttls if connect is called explicitly.
(cherry picked from commit 442f83a5ea)

Co-authored-by: nmartensen <nis.martensen@web.de>
2026-04-08 18:14:15 -04:00
Miss Islington (bot)
a84e2dba24
[3.14] Minor edit: Four space indent in example (gh-148264) (gh-148265) 2026-04-08 17:55:20 +00:00
Miss Islington (bot)
5df7652859
[3.14] gh-146458: Fix REPL height and width tracking on resize (GH-146459) (#148232)
gh-146458: Fix REPL height and width tracking on resize (GH-146459)
(cherry picked from commit 0b20bff386)

Co-authored-by: Gabriel Volles Marinho <147559808+GabrielvMarinho@users.noreply.github.com>
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-07 21:37:46 +00:00
Hugo van Kemenade
3da4e0910c Post 3.14.4 2026-04-07 20:46:24 +03:00
Hugo van Kemenade
23116f998f Python 3.14.4 2026-04-07 16:13:20 +03:00
Hugo van Kemenade
383c2919b1
[3.14] GH-146128: Remove the buggy AArch64 "33rx" relocation (GH-146263) (#148198)
Co-authored-by: Brandt Bucher <brandt@python.org>
2026-04-07 14:05:47 +03:00
Miss Islington (bot)
d786d59a8f
[3.14] gh-146121: Clarify security model of pkgutil.getdata (GH-148197) (GH-148206)
(cherry picked from commit cf59bf7647)

Co-authored-by: Petr Viktorin <encukou@gmail.com>
Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-07 12:48:29 +02:00
Gregory P. Smith
25369a8c78
[3.14] gh-144503: Pass sys.argv to forkserver as real argv elements (GH-148194) (#148195)
Avoid embedding the parent's sys.argv into the forkserver -c command
string via repr().  When sys.argv is large (e.g. thousands of file
paths from a pre-commit hook), the resulting single argument could
exceed the OS per-argument length limit (MAX_ARG_STRLEN on Linux,
typically 128 KiB), causing posix_spawn to fail and the parent to
observe a BrokenPipeError.

Instead, append the argv entries as separate command-line arguments
after -c; the forkserver child reads them back as sys.argv[1:].  This
cannot exceed any limit the parent itself did not already satisfy.

Regression introduced by gh-143706 / 298d5440eb.
(cherry picked from commit 5e9d90b615)
2026-04-07 06:19:32 +00:00
Miss Islington (bot)
8f59d40244
[3.14] gh-137586: Open external osascript program with absolute path (GH-137584) (#148173)
Co-authored-by: Fionn <1897918+fionn@users.noreply.github.com>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-07 03:35:12 +00:00
Miss Islington (bot)
07158b605d
[3.14] gh-146613: Fix re-entrant use-after-free in itertools._grouper (GH-147962) (#148010)
gh-146613: Fix re-entrant use-after-free in `itertools._grouper` (GH-147962)
(cherry picked from commit fc7a188fe7)

Co-authored-by: Ma Yukun <68433685+TheSkyC@users.noreply.github.com>
2026-04-06 18:23:08 +03:00
Miss Islington (bot)
40a0a94700
[3.14] gh-148157: Check for _PyPegen_add_type_comment_to_arg fail in _PyPegen_name_default_pair (GH-148158) (#148162)
(cherry picked from commit 1795fccfbc)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-06 12:22:33 +00:00
Miss Islington (bot)
90ae9381ea
[3.14] Docs: Update "Installing Python modules" (GH-146249) (#148159)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-06 11:28:07 +00:00
Miss Islington (bot)
bf6bd15156
[3.14] gh-144418: Increase Android testbed emulator RAM to 4 GB (GH-148054) (#148150)
Pre-create the Android emulator image so that the the configuration can be
modified to use 4GB of RAM.
(cherry picked from commit a95ee3a21d)

Co-authored-by: Malcolm Smith <smith@chaquo.com>
2026-04-06 14:09:14 +08:00
Miss Islington (bot)
636946f413
[3.14] gh-148144: Initialize visited on copied interpreter frames (GH-148143) (#148147)
gh-148144: Initialize visited on copied interpreter frames (GH-148143)

_PyFrame_Copy() copied interpreter frames into generator and
frame-object storage without initializing the visited byte. Incremental
GC later reads frame->visited in mark_stacks() on non-start passes, so
copied frames could expose an uninitialized value once they became live
on a thread stack again.

Reset visited when copying a frame so copied frames start with defined
GC bookkeeping state. Preserve lltrace in Py_DEBUG builds.
(cherry picked from commit fbfc6ccb0a)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
2026-04-05 23:49:47 +00:00
Miss Islington (bot)
e99b801aeb
[3.14] gh-145098: Use macos-15-intel instead of unstable macos-26-intel in {jit,tail-call}.yml (GH-148126) (#148135)
Co-authored-by: Stan Ulbrych <stan@python.org>
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-05 23:07:16 +03:00
Miss Islington (bot)
9bc5bc5618
[3.14] gh-94632: document the subprocess need for extra_groups=() with user= (GH-148129) (#148130)
gh-94632: document the subprocess need for extra_groups=() with user= (GH-148129)
(cherry picked from commit a1cf4430ed)

Co-authored-by: Gregory P. Smith <68491+gpshead@users.noreply.github.com>
2026-04-05 18:13:29 +00:00
Ezio Melotti
f74e2ee2d3
[3.14] Add permissions: {} to all reusable workflows (#148114) (#148115)
Add `permissions: {}` to all reusable workflows (#148114)

Add permissions: {} to all reusable workflows

(cherry picked from commit 1f36a510a2)
2026-04-05 01:46:39 +02:00
Miss Islington (bot)
26c57c05d3
[3.14] Docs: Standardize documentation authors (GH-148102) (#148104)
(cherry picked from commit 75be902a13)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-04 19:11:45 +01:00
Miss Islington (bot)
3530d32bb7
[3.14] Docs: Fix a typo in the 'Non-ASCII characters in names' section (GH-148043) (#148099)
(cherry picked from commit b1d2d9829c)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-04 16:51:39 +00:00
Miss Islington (bot)
8040b20473
[3.14] Regex HOWTO: invalid string literals result in SyntaxWarning (GH-148092) (#148097)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-04 16:19:38 +00:00
Miss Islington (bot)
64207c930b
[3.14] gh-145883: Fix two heap-buffer-overflows in _zoneinfo (GH-145885) (#148087)
(cherry picked from commit fe9befc1ca)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-04 17:13:13 +01:00
Miss Islington (bot)
61c919cf1b
[3.14] gh-148074: Fix typeobject.c missing error return (GH-148075) (#148095)
gh-148074: Fix `typeobject.c` missing error return (GH-148075)
(cherry picked from commit c398490fbf)

Co-authored-by: Wulian233 <1055917385@qq.com>
2026-04-04 16:01:34 +00:00
Miss Islington (bot)
58756bf0db
[3.14] gh-145098: Use macos-15-intel instead of unstable macos-26-intel (GH-148038) (#148076)
Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com>
2026-04-04 10:02:44 +00:00
Miss Islington (bot)
1c3e3fbcfb
[3.14] gh-143394: Skip pyrepl test_no_newline() basic REPL if readline is missing (GH-147973) (#148005)
gh-143394: Skip pyrepl test_no_newline() basic REPL if readline is missing (GH-147973)
(cherry picked from commit 97babb8ef7)

Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-04 08:38:43 +00:00
Miss Islington (bot)
83ee46c4c9
[3.14] gh-146450: Normalise feature set of Android build script with other platform build scripts (GH-146451) (#148065)
Allows for cleaning a subset of targets, customization of the download cache and
cross-build directories, and modifies the build command to allow 'all', 'build'
and 'hosts' targets.
(cherry picked from commit b8470deb5d)

Co-authored-by: Russell Keith-Magee <russell@keith-magee.com>
2026-04-04 12:27:49 +08:00
Russell Keith-Magee
ab3d37fab6
[3.14] gh-146541: Allow building the Android testbed for 32-bit targets (GH-146542) (#148064)
Allows building the Android testbed for 32-bit targets, adding the target triplets
`arm-linux-androideabi` and `i686-linux-android`.
(cherry picked from commit 848bbe9ff2)

Co-authored-by: Robert Kirkman <31490854+robertkirkman@users.noreply.github.com>
Co-authored-by: Malcolm Smith <smith@chaquo.com>
2026-04-04 03:58:20 +00:00
Miss Islington (bot)
f4c9bc899b
[3.14] gh-126676: Expand argparse docs for type=bool with warning and alternatives (GH-146435) (#148048)
gh-126676: Expand argparse docs for type=bool with warning and alternatives (GH-146435)
(cherry picked from commit 80d0a85d96)

Co-authored-by: Joshua Swanson <22283299+joshuaswanson@users.noreply.github.com>
Co-authored-by: joshuaswanson <joshuaswanson@users.noreply.github.com>
Co-authored-by: Savannah Ostrowski <savannah@python.org>
2026-04-03 12:10:19 -07:00
Miss Islington (bot)
594b5a05dc
[3.14] gh-143930: Tweak the exception message and increase test coverage (GH-146476) (GH-148042)
(cherry picked from commit 3681d47a44)

Co-authored-by: Łukasz Langa <lukasz@langa.pl>
2026-04-03 18:28:52 +02:00
Miss Islington (bot)
242ededffd
[3.14] gh-125895: Fix static asset location for sphinx-notfound-page (GH-147984) (#148040)
(cherry picked from commit 80ab6d958a)

Co-authored-by: Stan Ulbrych <stan@python.org>
2026-04-03 16:40:12 +01:00
Miss Islington (bot)
3d49e490e2
[3.14] gh-148022: Add threat model to remote debugging docs (GH-148024) (#148039)
gh-148022: Add threat model to remote debugging docs (GH-148024)

The remote debugging protocol has been generating spurious
vulnerability reports from automated scanners that pattern-match
on "remote access" and "memory operations" without understanding
the privilege model. This section documents the security boundaries
so reporters can self-triage before submitting.

The threat model clarifies three points: attaching requires the
same OS-level privileges as GDB (ptrace, task_for_pid, or
SeDebugPrivilege), crashes caused by reading corrupted target
process memory are not security issues, and a compromised target
process is out of scope. A subsection explains when operators
should use PYTHON_DISABLE_REMOTE_DEBUG for defence-in-depth.
(cherry picked from commit edab6860a7)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
2026-04-03 14:34:36 +00:00
Miss Islington (bot)
6996c8303b
[3.14] gh-146907: Clarify ABI compatibility between debug and release builds (GH-146925) (GH-147971)
(cherry picked from commit 03f3b9ade9)

Co-authored-by: konsti <konstin@mailbox.org>
2026-04-03 10:02:36 +02:00
Miss Islington (bot)
dbba26dabe
[3.14] gh-142533: Document CRLF injection vulnerabilities in http.server doc (GH-143395) (#148020)
gh-142533: Document CRLF injection vulnerabilities in http.server doc (GH-143395)
(cherry picked from commit 617f4cc1c2)

Co-authored-by: Tadej Magajna <tmagajna@gmail.com>
Co-authored-by: Victor Stinner <vstinner@python.org>
2026-04-02 21:32:48 +00:00
William Woodruff
ea9ecc8955
[3.14] gh-146488: hash-pin all action references (gh-146489) (#147983) 2026-04-02 09:30:01 +00:00
sunmy2019
b406d85603
[3.14] gh-146615: Fix format specifiers in extension modules (GH-146617) (#147704)
Fix format specifier in parse_task_name() for long result.
2026-04-01 15:12:44 +02:00