From c9f6e19eeb50ef50edd20b4872035ca969514868 Mon Sep 17 00:00:00 2001 From: An Long Date: Wed, 8 Jul 2026 01:03:34 +0900 Subject: [PATCH] gh-153205: Set `MemoryError` in stackref array conversion (GH-153206) (cherry picked from commit 08759ff1015552d58c1f6ffa13ea08b0ae32e6c0) Co-authored-by: An Long Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com> Co-authored-by: sobolevn --- .../2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst | 2 ++ Python/ceval.c | 1 + 2 files changed, 3 insertions(+) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst 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 index 000000000000000..9ccfbff7ee69778 --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2026-07-07-04-16-48.gh-issue-153205.5fE8QZ.rst @@ -0,0 +1,2 @@ +Fix a potential :exc:`SystemError` during vector calls when memory allocation fails. +A :exc:`MemoryError` is now raised instead. diff --git a/Python/ceval.c b/Python/ceval.c index b4fded923c10d3f..b3dab2e9da5a716 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -1083,6 +1083,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; } result++;