From: Miss Islington (bot) <31488909+miss-islington@users.noreply.github.com> Date: Fri, 12 Jun 2026 11:31:51 +0000 (+0200) Subject: [3.15] gh-151126: Fix crash on unset memory error in `ctypes.get_errno` (GH-151382... X-Git-Url: http://git.ipfire.org/gitweb/?a=commitdiff_plain;h=3603bd318b93d1ee1c40f39b6f2db08190a9e34a;p=thirdparty%2FPython%2Fcpython.git [3.15] gh-151126: Fix crash on unset memory error in `ctypes.get_errno` (GH-151382) (#151398) gh-151126: Fix crash on unset memory error in `ctypes.get_errno` (GH-151382) (cherry picked from commit 6b217ea90b9cd694fded6308bc796e324bbacd19) Co-authored-by: sobolevn --- diff --git a/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst b/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst new file mode 100644 index 000000000000..20ef69d5de5a --- /dev/null +++ b/Misc/NEWS.d/next/Library/2026-06-12-00-04-34.gh-issue-151126.aHaBYq.rst @@ -0,0 +1,2 @@ +Fix crash on unset :exc:`MemoryError` on allocation failure in +:func:`ctypes.get_errno`. diff --git a/Modules/_ctypes/callproc.c b/Modules/_ctypes/callproc.c index e453cfeec9cc..ccc57e347b07 100644 --- a/Modules/_ctypes/callproc.c +++ b/Modules/_ctypes/callproc.c @@ -168,8 +168,9 @@ _ctypes_get_errobj(ctypes_state *st, int **pspace) } else { void *space = PyMem_Calloc(2, sizeof(int)); - if (space == NULL) - return NULL; + if (space == NULL) { + return PyErr_NoMemory(); + } errobj = PyCapsule_New(space, CTYPES_CAPSULE_NAME_PYMEM, pymem_destructor); if (errobj == NULL) { PyMem_Free(space);