mirror of
https://github.com/python/cpython.git
synced 2025-07-09 20:35:26 +00:00
[3.9] bpo-43499: Restrict co_code to be under INT_MAX in codeobject (GH-20628) (GH-24896)
(cherry picked from commit 3b3b83c965
)
This commit is contained in:
parent
1f0cde6784
commit
db73376106
2 changed files with 11 additions and 1 deletions
|
@ -166,6 +166,14 @@ PyCode_NewWithPosOnlyArgs(int argcount, int posonlyargcount, int kwonlyargcount,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/* Make sure that code is indexable with an int, this is
|
||||
a long running assumption in ceval.c and many parts of
|
||||
the interpreter. */
|
||||
if (PyBytes_GET_SIZE(code) > INT_MAX) {
|
||||
PyErr_SetString(PyExc_OverflowError, "co_code larger than INT_MAX");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Check for any inner or outer closure references */
|
||||
n_cellvars = PyTuple_GET_SIZE(cellvars);
|
||||
if (!n_cellvars && !PyTuple_GET_SIZE(freevars)) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue