diff options
author | Lauren Perry <lauren.perry@codethink.co.uk> | 2015-01-20 11:48:05 +0000 |
---|---|---|
committer | Lauren Perry <lauren.perry@codethink.co.uk> | 2015-02-09 16:01:20 +0000 |
commit | 0563ed23dedd5dc8422e2407b01ca5ade040f051 (patch) | |
tree | e483d381723ab9c50d7f86d98fecd29909331189 /distbuild/jm.py | |
parent | f0c5d4c0ef35cc43aa059cd2255e41c60c4cac77 (diff) | |
download | morph-0563ed23dedd5dc8422e2407b01ca5ade040f051.tar.gz |
Fix distbuild controller crashing on some invalid inputs
Diffstat (limited to 'distbuild/jm.py')
-rw-r--r-- | distbuild/jm.py | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/distbuild/jm.py b/distbuild/jm.py index 615100e4..ebdcfbf8 100644 --- a/distbuild/jm.py +++ b/distbuild/jm.py @@ -109,8 +109,13 @@ class JsonMachine(StateMachine): line = line.rstrip() if self.debug_json: logging.debug('JsonMachine: line: %s' % repr(line)) - msg = yaml.load(json.loads(line)) - self.mainloop.queue_event(self, JsonNewMessage(msg)) + msg = None + try: + msg = yaml.safe_load(json.loads(line)) + except Exception: + logging.error('Invalid input: %s' % line) + if msg: + self.mainloop.queue_event(self, JsonNewMessage(msg)) def _send_eof(self, event_source, event): self.mainloop.queue_event(self, JsonEof()) |