From fac4b5c4602494f1d120d4faa05f8a49ec85bc47 Mon Sep 17 00:00:00 2001 From: Simone Margaritelli <evilsocket@gmail.com> Date: Wed, 9 Oct 2019 12:01:44 +0200 Subject: [PATCH] fix: don't allow plugins to make the main process crash --- pwnagotchi/plugins/__init__.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pwnagotchi/plugins/__init__.py b/pwnagotchi/plugins/__init__.py index 38d29e7..6dd7b64 100644 --- a/pwnagotchi/plugins/__init__.py +++ b/pwnagotchi/plugins/__init__.py @@ -1,6 +1,7 @@ import os import glob import importlib, importlib.util +import logging default_path = os.path.join(os.path.dirname(os.path.realpath(__file__)), "default") loaded = {} @@ -13,10 +14,13 @@ def dummy_callback(): def on(event_name, *args, **kwargs): global loaded cb_name = 'on_%s' % event_name - for _, plugin in loaded.items(): + for plugin_name, plugin in loaded.items(): if cb_name in plugin.__dict__: # print("calling %s %s(%s)" %(cb_name, args, kwargs)) - plugin.__dict__[cb_name](*args, **kwargs) + try: + plugin.__dict__[cb_name](*args, **kwargs) + except Exception as e: + logging.error("error while running %s.%s : %s" % (plugin_name, cb_name, e)) def load_from_file(filename):