davemds pushed a commit to branch master.

http://git.enlightenment.org/apps/espionage.git/commit/?id=55746803aada1be941ea08bb2bc7b8248a97d2f6

commit 55746803aada1be941ea08bb2bc7b8248a97d2f6
Author: davemds <[email protected]>
Date:   Sun Aug 10 16:21:21 2014 +0200

    Fix the method runner to not fail when more than one param given
    
    Also use ast.literal_eval instead ov eval. It's more secure this way
---
 espionage/espionage.py | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/espionage/espionage.py b/espionage/espionage.py
index 7203620..54577eb 100644
--- a/espionage/espionage.py
+++ b/espionage/espionage.py
@@ -22,6 +22,7 @@ import os
 import sys
 import dbus
 import json
+import ast
 from xml.etree import ElementTree
 
 from efl import elementary as elm
@@ -666,12 +667,16 @@ class MethodRunner(StandardWindow):
         # async method call
         try:
             if user_params:
-                meth(eval(user_params),
-                     reply_handler = self.reply_handler,
-                     error_handler = self.error_handler)
+                params = ast.literal_eval(user_params)
+                if type(params) is tuple:
+                    meth(*params, reply_handler=self.reply_handler,
+                                  error_handler=self.error_handler)
+                else:
+                    meth(params, reply_handler=self.reply_handler,
+                                 error_handler=self.error_handler)
             else:
-                meth(reply_handler = self.reply_handler,
-                     error_handler = self.error_handler)
+                meth(reply_handler=self.reply_handler,
+                     error_handler=self.error_handler)
         except Exception as e:
             s = "Error running method<br>Exception: "
             self._return_entry.entry = s + utf8_to_markup(str(e))

-- 


Reply via email to