cpython/Python
Nick Coghlan 93602e3af7 [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169)
bpo-27286 fixed a problem where BUILD_MAP_UNPACK_WITH_CALL could
be emitted with an incorrect oparg value, causing the eval loop
to access the wrong stack entry when attempting to read the
function name.

The associated magic number change caused significant problems when
attempting to upgrade to 3.5.3 for anyone that relies on pre-cached
bytecode remaining valid across maintenance releases.

This patch restores the ability to import legacy bytecode generated
by 3.5.0, 3.5.1 or 3.5.2, and modifies the eval loop to
avoid any harmful consequences from the potentially malformed legacy
bytecode.

Original import patch by Petr Viktorin, eval loop patch by Serhiy Storchaka,
and tests and integration by Nick Coghlan.
2017-03-08 16:41:01 +10:00
..
clinic Issue #27332: Fixed the type of the first argument of module-level functions 2016-07-07 17:35:15 +03:00
_warnings.c Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString. 2016-11-16 10:17:58 +02:00
asdl.c Issue #22207: Fix "comparison between signed and unsigned integers" warning in 2014-08-17 22:20:00 +02:00
ast.c Issue #28715: Added error checks for PyUnicode_AsUTF8(). 2016-11-20 08:47:21 +02:00
bltinmodule.c Issue #26729: Fixed __text_signature__ for sorted(). 2017-01-23 12:29:47 +02:00
ceval.c [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169) 2017-03-08 16:41:01 +10:00
ceval_gil.h Use Py_uintptr_t for atomic pointers 2016-01-22 14:09:55 +01:00
codecs.c Correct “an” → “a” with “Unicode”, “user”, “UTF”, etc 2016-04-15 02:14:19 +00:00
compile.c Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString. 2016-11-16 10:17:58 +02:00
condvar.h Issue #27895: Spelling fixes (Contributed by Ville Skyttä). 2016-09-07 12:03:06 +00:00
dtoa.c Fix compiler warning in dtoa.c 2015-03-18 15:01:44 +01:00
dup2.c
dynamic_annotations.c
dynload_aix.c PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
dynload_dl.c Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin. 2015-05-23 14:13:41 -07:00
dynload_hpux.c Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin. 2015-05-23 14:13:41 -07:00
dynload_next.c Issue #24268: Fix import naming when loading extension modules. Patch by Petr Viktorin. 2015-05-23 14:13:41 -07:00
dynload_shlib.c PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
dynload_stub.c Issue #13959: Re-implement imp.get_suffixes() in Lib/imp.py. 2012-05-04 15:20:40 -04:00
dynload_win.c Issue #24268: Fixes generation of init import name on Windows. 2015-05-23 08:59:25 -07:00
errors.c Issue #28512: Fixed setting the offset attribute of SyntaxError by 2016-12-11 14:39:01 +02:00
fileutils.c Issue #27076: Doc, comment and tests spelling fixes 2016-05-26 05:35:26 +00:00
formatter_unicode.c improve type-safe of and prevent double-frees in get_locale_info (#28119) 2016-09-13 22:43:45 -07:00
frozen.c Issue #23911: Move path-based bootstrap code to a separate frozen module. 2015-05-02 19:15:18 -06:00
frozenmain.c merge 3.4 (#22633) 2015-02-14 15:17:47 -05:00
future.c Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString. 2016-11-16 10:17:58 +02:00
getargs.c Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString. 2016-11-16 10:17:58 +02:00
getcompiler.c
getcopyright.c ring in 2017 for Python 2017-01-01 22:04:13 -06:00
getopt.c #16306: report only the first unknown option and add more tests. Patch by Serhiy Storchaka. 2012-11-23 18:48:32 +02:00
getplatform.c
getversion.c
graminit.c Issue #24791: Fix grammar regression for call syntax: 'g(*a or b)'. 2015-08-05 17:54:10 -04:00
import.c [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169) 2017-03-08 16:41:01 +10:00
importdl.c Issue #28715: Added error checks for PyUnicode_AsUTF8(). 2016-11-20 08:47:21 +02:00
importdl.h PEP 489: Multi-phase extension module initialization 2015-05-23 22:24:10 +10:00
importlib.h Issue #27942: String constants now interned recursively in tuples and frozensets. 2016-09-30 10:07:26 +03:00
importlib_external.h [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169) 2017-03-08 16:41:01 +10:00
makeopcodetargets.py excise the remains of STOP_CODE, which hasn't done anything useful for years 2011-07-17 22:49:50 -05:00
marshal.c Issue #25899: Converted non-ASCII characters in docstrings and manpage 2015-12-18 13:05:04 +02:00
modsupport.c Issue #26168: Fixed possible refleaks in failing Py_BuildValue() with the "N" 2016-05-20 22:31:14 +03:00
mysnprintf.c
mystrtoul.c Issue #1772673: The type of char* arguments now changed to const char*. 2013-10-19 21:03:34 +03:00
opcode_targets.h Issue #24400: Introduce a distinct type for 'async def' coroutines. 2015-06-22 12:19:30 -04:00
peephole.c Issue #27076: Doc, comment and tests spelling fixes 2016-05-26 05:35:26 +00:00
pyarena.c Issue #18203: Replace malloc() with PyMem_Malloc() to allocate arena objects 2013-07-07 17:18:53 +02:00
pyctype.c
pyfpe.c Removed unintentional trailing spaces in non-external and non-generated C files. 2015-03-18 21:53:15 +02:00
pyhash.c Issue #20162: Fix an alignment issue in the siphash24() hash function which 2014-02-01 03:38:56 +01:00
pylifecycle.c Issue #25339: PYTHONIOENCODING now has priority over locale in setting the 2016-04-10 14:34:13 +03:00
pymath.c Issue 24366: Indent code (thanks to li4ick for reporting). 2015-06-02 18:53:46 -04:00
pystate.c Issue #27587: Move null pointer check earlier in _PyState_AddModule() 2016-08-22 18:05:56 +03:00
pystrcmp.c
pystrhex.c Silence a gcc "may be used uninitialized" compiler warning. Not true. 2015-04-25 23:51:39 -07:00
pystrtod.c Removed duplicated words in in comments and docs. 2014-12-01 18:28:43 +02:00
Python-ast.c Issue #24098: Fixed possible crash when AST is changed in process of 2016-10-07 21:51:28 +03:00
pythonrun.c [3.5] bpo-29537: Tolerate legacy invalid bytecode (#169) 2017-03-08 16:41:01 +10:00
pytime.c pytime.c: rename pygettimeofday_new() to pygettimeofday() 2015-11-10 12:11:39 +01:00
random.c Issue #29157: Prefer getrandom() over getentropy() 2017-01-09 11:18:53 +01:00
README Issue #18093: Factor out the programs that embed the runtime 2014-07-25 21:52:14 +10:00
sigcheck.c
strdup.c Issue #18722: Remove uses of the "register" keyword in C code. 2013-08-13 20:18:52 +02:00
structmember.c Fix null pointer dereferencing in structmember.c PyMember_SetOne() for T_CHAR. _PyUnicode_AsStringAndSize() can return NULL without touching the len argument. Also remove unnecessary PyUnicode_Check(), _PyUnicode_AsStringAndSize() performance the test again. CID 486815 2012-09-11 17:30:53 +02:00
symtable.c Issue #28701: Replace PyUnicode_CompareWithASCIIString with _PyUnicode_EqualToASCIIString. 2016-11-16 10:17:58 +02:00
sysmodule.c [3.5] bpo-27593: Get SCM build info from git instead of hg. (#446) (#454) (#455) 2017-03-04 01:34:19 -05:00
thread.c Issue #25523: Merge "a" to "an" fixes from 3.4 into 3.5 2015-11-02 04:04:57 +00:00
thread_foobar.h Issue #21312: Update the thread_foobar.h template file to include newer threading APIs. Patch by Jack McCracken. 2014-04-28 21:12:11 +02:00
thread_nt.h Issue #26778: Fixed "a/an/and" typos in code comment and documentation. 2016-04-17 08:32:47 +03:00
thread_pthread.h Issue #22206: Using pthread, PyThread_create_key() now sets errno to ENOMEM and 2014-08-17 22:11:06 +02:00
traceback.c Issue #23782: Fixed possible memory leak in _PyTraceback_Add() and exception 2016-10-18 13:23:18 +03:00

Miscellaneous source files for the main Python shared library