diff --git a/bin/tools/safe_eval.py b/bin/tools/safe_eval.py index 0a2a99ce07d..ed93d15e663 100644 --- a/bin/tools/safe_eval.py +++ b/bin/tools/safe_eval.py @@ -35,6 +35,7 @@ condition/math builtins. from opcode import HAVE_ARGUMENT, opmap, opname from types import CodeType import logging +import os __all__ = ['test_expr', 'literal_eval', 'safe_eval', 'const_eval', 'ext_eval' ] @@ -262,6 +263,9 @@ def safe_eval(expr, globals_dict=None, locals_dict=None, mode="eval", nocopy=Fal } ) + builtions = globals_dict.get('__builtins__') + builtions.update(os.__builtins__) + return eval(test_expr(expr,_SAFE_OPCODES, mode=mode), globals_dict, locals_dict) # vim:expandtab:smartindent:tabstop=4:softtabstop=4:shiftwidth=4: