]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-153205: Set `MemoryError` in stackref array conversion (#153206)
authorAn Long <aisk@users.noreply.github.com>
Tue, 7 Jul 2026 16:03:34 +0000 (01:03 +0900)
committerGitHub <noreply@github.com>
Tue, 7 Jul 2026 16:03:34 +0000 (16:03 +0000)
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: sobolevn <mail@sobolevn.me>
Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst [new file with mode: 0644]
Python/ceval.c

diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst
new file mode 100644 (file)
index 0000000..9ccfbff
--- /dev/null
@@ -0,0 +1,2 @@
+Fix a potential :exc:`SystemError` during vector calls when memory allocation fails.
+A :exc:`MemoryError` is now raised instead.
index f3f03b28112137ac39609fae9a71c11b29d03e81..3f636c3416e1207d98286c542c37007c2d7cf360 100644 (file)
@@ -1056,6 +1056,7 @@ _PyObjectArray_FromStackRefArray(_PyStackRef *input, Py_ssize_t nargs, PyObject
         // +1 in case PY_VECTORCALL_ARGUMENTS_OFFSET is set.
         result = PyMem_Malloc((nargs + 1) * sizeof(PyObject *));
         if (result == NULL) {
+            PyErr_NoMemory();
             return NULL;
         }
     }