diff options
author | 2018-07-24 22:05:09 +0200 | |
---|---|---|
committer | 2018-07-24 22:05:09 +0200 | |
commit | 68f139fbe564425f8e56d1e18120654061981fe1 (patch) | |
tree | e822cbefffc65b120efbdb7016ef52da5f77b14e /snekbox.py | |
parent | missing comma (diff) |
update pipfile lock, handle value error, show error codes when unhandled
Diffstat (limited to 'snekbox.py')
-rw-r--r-- | snekbox.py | 18 |
1 files changed, 10 insertions, 8 deletions
@@ -45,13 +45,15 @@ class Snekbox(object): '--cgroup_mem_max=52428800', '--quiet', '--', self.python_binary, '-ISq', '-c', cmd] - - proc = subprocess.Popen(args, + try: + proc = subprocess.Popen(args, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE, env=self.env, universal_newlines=True) + except ValueError: + return 'ValueError: embedded null byte' stdout, stderr = proc.communicate() if proc.returncode == 0: @@ -67,17 +69,17 @@ class Snekbox(object): except IndexError: output = '' - elif proc.returncode == 11: - output = 'segfaulted, nice work!' - elif proc.returncode == 109: - output = 'timed out or memory limit exceeded' + return 'timed out or memory limit exceeded' elif proc.returncode == 255: - output = 'permission denied (root required)' + return 'permission denied (root required)' + + elif proc.returncode: + return f'unknown error, code: {proc.returncode}' else: - output = 'unknown error' + return 'unknown error, no error code' return output |