From 8ee329c1dcc47c55f2243a7bc2752097f17c98f5 Mon Sep 17 00:00:00 2001 From: Olivier Laurent Date: Mon, 30 Jul 2018 09:49:59 +0200 Subject: [FIX] P3: add missing opcode MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit In Python 3, SETUP_FINALLY is used if the exception object is bound in the except block — even if there is no finally block — in order to unbind and cleanup the exception's binding as part of PEP 3110: https://www.python.org/dev/peps/pep-3110/#semantic-changes This allows both using exception objects in Python 3 and using finally blocks in both version. opw 1824211 --- odoo/tools/safe_eval.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'odoo/tools/safe_eval.py') diff --git a/odoo/tools/safe_eval.py b/odoo/tools/safe_eval.py index 7a5ec03707a..ccb2e3e25b4 100644 --- a/odoo/tools/safe_eval.py +++ b/odoo/tools/safe_eval.py @@ -107,8 +107,8 @@ _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [ 'JUMP_FORWARD', 'JUMP_IF_TRUE', 'JUMP_IF_FALSE', 'JUMP_ABSOLUTE', # New in Python 2.7 - http://bugs.python.org/issue4715 : 'JUMP_IF_FALSE_OR_POP', 'JUMP_IF_TRUE_OR_POP', 'POP_JUMP_IF_FALSE', - 'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'END_FINALLY', 'RAISE_VARARGS', - 'LOAD_NAME', 'STORE_NAME', 'DELETE_NAME', 'LOAD_ATTR', + 'POP_JUMP_IF_TRUE', 'SETUP_EXCEPT', 'SETUP_FINALLY', 'END_FINALLY', + 'RAISE_VARARGS', 'LOAD_NAME', 'STORE_NAME', 'DELETE_NAME', 'LOAD_ATTR', 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', 'UNPACK_SEQUENCE', 'LOAD_GLOBAL', # Only allows access to restricted globals ] if x in opmap)) -- cgit v1.2.3