Crash report
- remove_unused_consts in Python/flowgraph.c
When PyMem_Malloc(nconsts * sizeof(Py_ssize_t)); fails, we need to set an exception.
|
static int |
|
remove_unused_consts(basicblock *entryblock, PyObject *consts) |
|
{ |
|
assert(PyList_CheckExact(consts)); |
|
Py_ssize_t nconsts = PyList_GET_SIZE(consts); |
|
if (nconsts == 0) { |
|
return SUCCESS; /* nothing to do */ |
|
} |
|
|
|
Py_ssize_t *index_map = NULL; |
|
Py_ssize_t *reverse_index_map = NULL; |
|
int err = ERROR; |
|
|
|
index_map = PyMem_Malloc(nconsts * sizeof(Py_ssize_t)); |
|
if (index_map == NULL) { |
|
goto end; |
|
} |
- gethandlelist and getattributelist in _winapi.c
This place misses it:
|
ret = PyMem_Malloc(*size); |
|
if (ret == NULL) |
|
goto cleanup; |
All other error paths set exceptions, except this if:
|
attribute_list->attribute_list = PyMem_Malloc(attribute_list_size); |
|
if (attribute_list->attribute_list == NULL) { |
|
ret = -1; |
|
goto cleanup; |
|
} |
- _channelends_new in Modules/_interpchannelsmodule.c
|
static _channelends * |
|
_channelends_new(void) |
|
{ |
|
_channelends *ends = GLOBAL_MALLOC(_channelends); |
|
if (ends== NULL) { |
|
return NULL; |
|
} |
Later we check for errors in handle_channel_error, it requires either setting err to non -1 or to set Python exception. Both are false, it fails with the assertion failure.
Linked PRs
Reactions are currently unavailable
Crash report
When PyMem_Malloc(nconsts * sizeof(Py_ssize_t)); fails, we need to set an exception.
cpython/Python/flowgraph.c
Lines 3267 to 3283 in 29a920e
This place misses it:
cpython/Modules/_winapi.c
Lines 1196 to 1198 in 9fdbade
All other error paths set exceptions, except this if:
cpython/Modules/_winapi.c
Lines 1278 to 1282 in 9fdbade
cpython/Modules/_interpchannelsmodule.c
Lines 920 to 926 in 3ca93ab
Later we check for errors in handle_channel_error, it requires either setting err to non -1 or to set Python exception. Both are false, it fails with the assertion failure.
Linked PRs