https://github.com/python/cpython/commit/9fd1a125bc0ebdc26eae684da6e48ef24ee23b34
commit: 9fd1a125bc0ebdc26eae684da6e48ef24ee23b34
branch: main
author: sobolevn <[email protected]>
committer: sobolevn <[email protected]>
date: 2026-06-10T18:59:11+03:00
summary:
gh-151126: Fix missing memory errors in `_interpchannelsmodule.c` (#151239)
files:
M
Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst
M Modules/_interpchannelsmodule.c
diff --git
a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst
b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst
index 81e87e539865ce..67e2ce4044431f 100644
---
a/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst
+++
b/Misc/NEWS.d/next/Core_and_Builtins/2026-06-09-10-28-30.gh-issue-151126.DKa6Sl.rst
@@ -1,7 +1,5 @@
Fix a crash, when there's no memory left on a device,
-which happened in:
-
-- code compilation
-- :func:`!_winapi.CreateProcess`
+which happened in: code compilation, :mod:`!_interpchannels` module,
+:func:`!_winapi.CreateProcess` function.
Now these places raise proper :exc:`MemoryError` errors.
diff --git a/Modules/_interpchannelsmodule.c b/Modules/_interpchannelsmodule.c
index c6d107d243dda0..3614890757d69d 100644
--- a/Modules/_interpchannelsmodule.c
+++ b/Modules/_interpchannelsmodule.c
@@ -921,7 +921,8 @@ static _channelends *
_channelends_new(void)
{
_channelends *ends = GLOBAL_MALLOC(_channelends);
- if (ends== NULL) {
+ if (ends == NULL) {
+ PyErr_NoMemory();
return NULL;
}
ends->numsendopen = 0;
@@ -1115,6 +1116,7 @@ _channel_new(PyThread_type_lock mutex, struct
_channeldefaults defaults)
assert(check_unbound(defaults.unboundop));
_channel_state *chan = GLOBAL_MALLOC(_channel_state);
if (chan == NULL) {
+ PyErr_NoMemory();
return NULL;
}
chan->mutex = mutex;
@@ -1313,6 +1315,7 @@ _channelref_new(int64_t cid, _channel_state *chan)
{
_channelref *ref = GLOBAL_MALLOC(_channelref);
if (ref == NULL) {
+ PyErr_NoMemory();
return NULL;
}
ref->cid = cid;
@@ -1698,6 +1701,7 @@ _channel_set_closing(_channelref *ref, PyThread_type_lock
mutex) {
}
chan->closing = GLOBAL_MALLOC(struct _channel_closing);
if (chan->closing == NULL) {
+ PyErr_NoMemory();
goto done;
}
chan->closing->ref = ref;
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3//lists/python-checkins.python.org
Member address: [email protected]