diff options
author | Raymond Hettinger <python@rcn.com> | 2004-08-06 19:46:34 (GMT) |
---|---|---|
committer | Raymond Hettinger <python@rcn.com> | 2004-08-06 19:46:34 (GMT) |
commit | 98bd1814e24434ca9961dddc71bf21db67211ab9 (patch) | |
tree | a0f4725a89ba27071f3c7c78bcd584854ed9a745 /Python/compile.c | |
parent | ba59be04fa172a9104fa5a1ff02f7940ced7c215 (diff) | |
download | cpython-98bd1814e24434ca9961dddc71bf21db67211ab9.zip cpython-98bd1814e24434ca9961dddc71bf21db67211ab9.tar.gz cpython-98bd1814e24434ca9961dddc71bf21db67211ab9.tar.bz2 |
SF bug #1004088: big code objects (>64K) may be optimized incorrectly
Will backport.
Diffstat (limited to 'Python/compile.c')
-rw-r--r-- | Python/compile.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/Python/compile.c b/Python/compile.c index 0b5ba6c..5c67987 100644 --- a/Python/compile.c +++ b/Python/compile.c @@ -379,6 +379,11 @@ optimize_code(PyObject *code, PyObject* consts, PyObject *names) if (codestr == NULL) goto exitUnchanged; codestr = memcpy(codestr, PyString_AS_STRING(code), codelen); + + /* Avoid situations where jump retargeting could overflow */ + if (codelen > 65000) + goto exitUnchanged; + blocks = markblocks(codestr, codelen); if (blocks == NULL) { PyMem_Free(codestr); |