Skip to content

Commit 1c95fa9

Browse files
authored
Merge branch 'main' into fix-127727
2 parents 16349f0 + ae62b53 commit 1c95fa9

229 files changed

Lines changed: 6165 additions & 1860 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/SECURITY.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Security Policy
22

33
Python [provides a security policy and threat model](https://devguide.python.org/security/policy/)
4-
in the Python Development Guide documenting what bugs are vulnerabilities,
4+
in the Python Developer's Guide documenting what bugs are vulnerabilities,
55
how to structure reports, and what versions of Python accept reports.
66

77
Python Security Response Team (PSRT) members

.github/workflows/build.yml

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -278,14 +278,13 @@ jobs:
278278
# unsupported as it most resembles other 1.1.1-work-a-like ssl APIs
279279
# supported by important vendors such as AWS-LC.
280280
- { name: openssl, version: 1.1.1w }
281-
- { name: openssl, version: 3.0.20 }
282-
- { name: openssl, version: 3.3.7 }
283-
- { name: openssl, version: 3.4.5 }
284-
- { name: openssl, version: 3.5.6 }
285-
- { name: openssl, version: 3.6.2 }
286-
- { name: openssl, version: 4.0.0 }
281+
- { name: openssl, version: 3.0.21 }
282+
- { name: openssl, version: 3.4.6 }
283+
- { name: openssl, version: 3.5.7 }
284+
- { name: openssl, version: 3.6.3 }
285+
- { name: openssl, version: 4.0.1 }
287286
## AWS-LC
288-
- { name: aws-lc, version: 1.72.1 }
287+
- { name: aws-lc, version: 5.0.0 }
289288
env:
290289
SSLLIB_VER: ${{ matrix.ssllib.version }}
291290
MULTISSL_DIR: ${{ github.workspace }}/multissl
@@ -399,7 +398,7 @@ jobs:
399398
needs: build-context
400399
if: needs.build-context.outputs.run-ubuntu == 'true'
401400
env:
402-
OPENSSL_VER: 3.5.6
401+
OPENSSL_VER: 3.5.7
403402
PYTHONSTRICTEXTENSIONBUILD: 1
404403
steps:
405404
- uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -507,7 +506,7 @@ jobs:
507506
matrix:
508507
os: [ubuntu-24.04]
509508
env:
510-
OPENSSL_VER: 3.5.6
509+
OPENSSL_VER: 3.5.7
511510
PYTHONSTRICTEXTENSIONBUILD: 1
512511
ASAN_OPTIONS: detect_leaks=0:allocator_may_return_null=1:handle_segv=0
513512
steps:

.github/workflows/reusable-ubuntu.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ jobs:
3535
runs-on: ${{ inputs.os }}
3636
timeout-minutes: 60
3737
env:
38-
OPENSSL_VER: 3.5.6
38+
OPENSSL_VER: 3.5.7
3939
PYTHONSTRICTEXTENSIONBUILD: 1
4040
TERM: linux
4141
steps:

Doc/c-api/complex.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ rather than dereferencing them through pointers.
130130
131131
Please note, that these functions are :term:`soft deprecated` since Python
132132
3.15. Avoid using this API in a new code to do complex arithmetic: either use
133-
the `Number Protocol <number>`_ API or use native complex types, like
133+
the :ref:`Number Protocol <number>` API or use native complex types, like
134134
:c:expr:`double complex`.
135135
136136

Doc/c-api/coro.rst

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,3 +33,9 @@ return.
3333
with ``__name__`` and ``__qualname__`` set to *name* and *qualname*.
3434
A reference to *frame* is stolen by this function. The *frame* argument
3535
must not be ``NULL``.
36+
37+
.. deprecated-removed:: 3.16 3.18
38+
39+
This function has not been used since 3.10.
40+
It is also impossible to construct a proper *frame*
41+
object to call this function.

Doc/c-api/gen.rst

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,13 +38,25 @@ than explicitly calling :c:func:`PyGen_New` or :c:func:`PyGen_NewWithQualName`.
3838
A reference to *frame* is stolen by this function. The argument must not be
3939
``NULL``.
4040
41+
.. deprecated-removed:: 3.16 3.18
42+
43+
This function has not been used since 3.10.
44+
It is also impossible to construct a proper *frame*
45+
object to call this function.
46+
4147
.. c:function:: PyObject* PyGen_NewWithQualName(PyFrameObject *frame, PyObject *name, PyObject *qualname)
4248
4349
Create and return a new generator object based on the *frame* object,
4450
with ``__name__`` and ``__qualname__`` set to *name* and *qualname*.
4551
A reference to *frame* is stolen by this function. The *frame* argument
4652
must not be ``NULL``.
4753
54+
.. deprecated-removed:: 3.16 3.18
55+
56+
This function has not been used since 3.10.
57+
It is also impossible to construct a proper *frame*
58+
object to call this function.
59+
4860
4961
.. c:function:: PyCodeObject* PyGen_GetCode(PyGenObject *gen)
5062
@@ -77,6 +89,12 @@ Asynchronous Generator Objects
7789
7890
.. versionadded:: 3.6
7991
92+
.. deprecated-removed:: 3.16 3.18
93+
94+
This function has not been used since 3.10.
95+
It is also impossible to construct a proper *frame*
96+
object to call this function.
97+
8098
.. c:function:: int PyAsyncGen_CheckExact(PyObject *op)
8199
82100
Return true if *op* is an asynchronous generator object, false otherwise.

Doc/c-api/long.rst

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,12 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
7171
on failure.
7272
7373
74+
.. c:function:: PyObject* PyLong_FromUnsignedLongLong(unsigned long long v)
75+
76+
Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long long`,
77+
or ``NULL`` on failure.
78+
79+
7480
.. c:function:: PyObject* PyLong_FromInt32(int32_t value)
7581
PyObject* PyLong_FromInt64(int64_t value)
7682
@@ -81,12 +87,6 @@ distinguished from a number. Use :c:func:`PyErr_Occurred` to disambiguate.
8187
.. versionadded:: 3.14
8288
8389
84-
.. c:function:: PyObject* PyLong_FromUnsignedLongLong(unsigned long long v)
85-
86-
Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long long`,
87-
or ``NULL`` on failure.
88-
89-
9090
.. c:function:: PyObject* PyLong_FromUInt32(uint32_t value)
9191
PyObject* PyLong_FromUInt64(uint64_t value)
9292

Doc/c-api/memory.rst

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ memory footprint as a whole. Consequently, under certain circumstances, the
7777
Python memory manager may or may not trigger appropriate actions, like garbage
7878
collection, memory compaction or other preventive procedures. Note that by using
7979
the C library allocator as shown in the previous example, the allocated memory
80-
for the I/O buffer escapes completely the Python memory manager.
80+
for the I/O buffer completely escapes the Python memory manager.
8181

8282
.. seealso::
8383

@@ -157,7 +157,7 @@ zero bytes.
157157
158158
.. c:function:: void* PyMem_RawCalloc(size_t nelem, size_t elsize)
159159
160-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
160+
Allocates *nelem* elements each of size *elsize* bytes and returns
161161
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
162162
request fails. The memory is initialized to zeros.
163163
@@ -235,7 +235,7 @@ In the GIL-enabled build (default build) the
235235
236236
.. c:function:: void* PyMem_Calloc(size_t nelem, size_t elsize)
237237
238-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
238+
Allocates *nelem* elements each of size *elsize* bytes and returns
239239
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
240240
request fails. The memory is initialized to zeros.
241241
@@ -368,7 +368,7 @@ The :ref:`default object allocator <default-memory-allocators>` uses the
368368
369369
.. c:function:: void* PyObject_Calloc(size_t nelem, size_t elsize)
370370
371-
Allocates *nelem* elements each whose size in bytes is *elsize* and returns
371+
Allocates *nelem* elements each of size *elsize* bytes and returns
372372
a pointer of type :c:expr:`void*` to the allocated memory, or ``NULL`` if the
373373
request fails. The memory is initialized to zeros.
374374

Doc/c-api/module.rst

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -247,6 +247,15 @@ Feature slots
247247
If ``Py_mod_multiple_interpreters`` is not specified, the import
248248
machinery defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``.
249249
250+
For historical reasons, the values are declared as pointers (``void *``).
251+
When using :c:type:`PySlot` arrays, use :c:macro:`PySlot_DATA` for
252+
:c:macro:`!Py_mod_multiple_interpreters`:
253+
254+
.. code-block:: c
255+
256+
PySlot_DATA(Py_mod_multiple_interpreters,
257+
Py_MOD_PER_INTERPRETER_GIL_SUPPORTED)
258+
250259
.. versionadded:: 3.12
251260
252261
.. c:macro:: Py_mod_gil
@@ -272,6 +281,14 @@ Feature slots
272281
If ``Py_mod_gil`` is not specified, the import machinery defaults to
273282
``Py_MOD_GIL_USED``.
274283
284+
For historical reasons, the values are declared as pointers (``void *``).
285+
When using :c:type:`PySlot` arrays, use :c:macro:`PySlot_DATA` for
286+
:c:macro:`!Py_mod_gil`:
287+
288+
.. code-block:: c
289+
290+
PySlot_DATA(Py_mod_gil, Py_MOD_GIL_NOT_USED)
291+
275292
.. versionadded:: 3.13
276293
277294

Doc/c-api/typeobj.rst

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2975,13 +2975,13 @@ Buffer Object Structures
29752975
steps:
29762976

29772977
(1) Check if the request can be met. If not, raise :exc:`BufferError`,
2978-
set :c:expr:`view->obj` to ``NULL`` and return ``-1``.
2978+
set ``view->obj`` to ``NULL`` and return ``-1``.
29792979

29802980
(2) Fill in the requested fields.
29812981

29822982
(3) Increment an internal counter for the number of exports.
29832983

2984-
(4) Set :c:expr:`view->obj` to *exporter* and increment :c:expr:`view->obj`.
2984+
(4) Set ``view->obj`` to *exporter* and increment ``view->obj``.
29852985

29862986
(5) Return ``0``.
29872987

@@ -3007,10 +3007,10 @@ Buffer Object Structures
30073007
schemes can be used:
30083008

30093009
* Re-export: Each member of the tree acts as the exporting object and
3010-
sets :c:expr:`view->obj` to a new reference to itself.
3010+
sets ``view->obj`` to a new reference to itself.
30113011

30123012
* Redirect: The buffer request is redirected to the root object of the
3013-
tree. Here, :c:expr:`view->obj` will be a new reference to the root
3013+
tree. Here, ``view->obj`` will be a new reference to the root
30143014
object.
30153015

30163016
The individual fields of *view* are described in section
@@ -3064,7 +3064,7 @@ Buffer Object Structures
30643064
*view* argument.
30653065

30663066

3067-
This function MUST NOT decrement :c:expr:`view->obj`, since that is
3067+
This function MUST NOT decrement ``view->obj``, since that is
30683068
done automatically in :c:func:`PyBuffer_Release` (this scheme is
30693069
useful for breaking reference cycles).
30703070

0 commit comments

Comments
 (0)