From 7f99167f0b6a3c83bf77e20bc5e03942b901fb71 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Mon, 9 Nov 2026 18:25:59 +0100 Subject: fix: OBS idle timeout, payload validation, workspace list --- deckit/server.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) (limited to 'deckit/server.py') diff --git a/deckit/server.py b/deckit/server.py index bbd92cf..bddbb00 100644 --- a/deckit/server.py +++ b/deckit/server.py @@ -129,14 +129,17 @@ class Handler(BaseHTTPRequestHandler): return self._send(404, str(e).encode()) if fn is None: return self._send(404, b"unknown action") - length = int(self.headers.get("Content-Length", 0) or 0) + try: + length = int(self.headers.get("Content-Length", 0) or 0) + except ValueError: + return self._send(400, b"Invalid Content-Length") if self.headers.get("Content-Type") != "application/json" or not 0 < length <= 4096: return self._send(400, b"Expected a small JSON body") try: result = fn(json.loads(self.rfile.read(length))) except module.ModuleError as e: return self._send(400, str(e).encode()) - except (ValueError, AttributeError): + except (ValueError, AttributeError, TypeError, KeyError): return self._send(400, b"Invalid request") if result is None: return self._send(204) -- cgit v1.2.3