mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
closes bpo-38124: Fix bounds check in PyState_AddModule. (GH-16007)
The >=, checking whether a module index was in already in the module-by-index list, needed to be strict.
Also, fold nested ifs into one and fix some bad spacing.
(cherry picked from commit 39de95b746
)
Co-authored-by: Benjamin Peterson <benjamin@python.org>
This commit is contained in:
parent
8af4e0c994
commit
a5a7102636
2 changed files with 8 additions and 8 deletions
|
@ -685,7 +685,7 @@ _PyState_AddModule(PyObject* module, struct PyModuleDef* def)
|
|||
if (!state->modules_by_index)
|
||||
return -1;
|
||||
}
|
||||
while(PyList_GET_SIZE(state->modules_by_index) <= def->m_base.m_index)
|
||||
while (PyList_GET_SIZE(state->modules_by_index) <= def->m_base.m_index)
|
||||
if (PyList_Append(state->modules_by_index, Py_None) < 0)
|
||||
return -1;
|
||||
Py_INCREF(module);
|
||||
|
@ -703,13 +703,11 @@ PyState_AddModule(PyObject* module, struct PyModuleDef* def)
|
|||
return -1;
|
||||
}
|
||||
index = def->m_base.m_index;
|
||||
if (state->modules_by_index) {
|
||||
if(PyList_GET_SIZE(state->modules_by_index) >= index) {
|
||||
if(module == PyList_GET_ITEM(state->modules_by_index, index)) {
|
||||
Py_FatalError("PyState_AddModule: Module already added!");
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
if (state->modules_by_index &&
|
||||
index < PyList_GET_SIZE(state->modules_by_index) &&
|
||||
module == PyList_GET_ITEM(state->modules_by_index, index)) {
|
||||
Py_FatalError("PyState_AddModule: Module already added!");
|
||||
return -1;
|
||||
}
|
||||
return _PyState_AddModule(module, def);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue