summaryrefslogtreecommitdiffstats
path: root/Misc/NEWS
diff options
context:
space:
mode:
authorNick Coghlan <ncoghlan@gmail.com>2017-03-08 06:41:01 (GMT)
committerGitHub <noreply@github.com>2017-03-08 06:41:01 (GMT)
commit93602e3af70d3b9f98ae2da654b16b3382b68d50 (patch)
tree632030f1074215e980a070e718be27d2096ffe88 /Misc/NEWS
parentbef209d449afcdc391b108d197a95b15902197d9 (diff)
downloadcpython-93602e3af70d3b9f98ae2da654b16b3382b68d50.zip
cpython-93602e3af70d3b9f98ae2da654b16b3382b68d50.tar.gz
cpython-93602e3af70d3b9f98ae2da654b16b3382b68d50.tar.bz2
[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.
Diffstat (limited to 'Misc/NEWS')
-rw-r--r--Misc/NEWS6
1 files changed, 6 insertions, 0 deletions
diff --git a/Misc/NEWS b/Misc/NEWS
index 03f8286..82f9f9a 100644
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -10,6 +10,12 @@ Release date: XXXX-XX-XX
Core and Builtins
-----------------
+- Issue #29537: Restore runtime compatibility with bytecode files generated by
+ CPython 3.5.0 and 3.5.1, and adjust the eval loop to avoid the problems that
+ could be caused by the malformed variant of the BUILD_MAP_UNPACK_WITH_CALL
+ opcode that they may contain. Patch by Petr Viktorin, Serhiy Storchaka,
+ and Nick Coghlan.
+
- Issue #28598: Support __rmod__ for subclasses of str being called before
str.__mod__. Patch by Martijn Pieters.