From 46ef1356d6de734b96ab3f1d8a0892044989b5f9 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Fri, 25 Jul 2014 13:00:17 +0200 Subject: [PATCH] [ADD] safe_eval: UNPACK_SEQUENCE and Exception Allowing UNPACK_SEQUENCE allows the use of the "multi" assignation: a, b = [1,2] for a,b in items --- openerp/tools/safe_eval.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/openerp/tools/safe_eval.py b/openerp/tools/safe_eval.py index 76987e278e6..0b9b2e7a8a3 100644 --- a/openerp/tools/safe_eval.py +++ b/openerp/tools/safe_eval.py @@ -67,7 +67,7 @@ _SAFE_OPCODES = _EXPR_OPCODES.union(set(opmap[x] for x in [ # 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', - 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', + 'LOAD_FAST', 'STORE_FAST', 'DELETE_FAST', 'UNPACK_SEQUENCE', 'LOAD_GLOBAL', # Only allows access to restricted globals ] if x in opmap)) @@ -278,7 +278,8 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal 'filter': filter, 'round': round, 'len': len, - 'set' : set + 'set' : set, + 'Exception': Exception, } ) try: