diff options
author | bptato <nincsnevem662@gmail.com> | 2025-03-02 20:11:48 +0100 |
---|---|---|
committer | bptato <nincsnevem662@gmail.com> | 2025-03-02 20:14:50 +0100 |
commit | a0b345318e08d73eaedfc9b1caeec5b78fc270e3 (patch) | |
tree | e33c7b78a479d8669d6a478f04335446cdbd7e08 | |
parent | a233ff9554372f04d3a6633f6e22db6c83db8c97 (diff) | |
download | chawan-a0b345318e08d73eaedfc9b1caeec5b78fc270e3.tar.gz |
loader: fix crash on iclose if client is dead
-rw-r--r-- | src/server/loader.nim | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/server/loader.nim b/src/server/loader.nim index 6aee6fb3..fb496189 100644 --- a/src/server/loader.nim +++ b/src/server/loader.nim @@ -265,10 +265,13 @@ proc iclose(handle: InputHandle) = assert handle.outputs.len == 1 # not an ideal solution, but better than silently eating malformed # headers - handle.sendStatus(500, newHeaders()) handle.output.stream.setBlocking(true) - const msg = "Error: malformed header in CGI script" - discard handle.output.stream.writeData(msg) + try: + handle.sendStatus(500, newHeaders()) + const msg = "Error: malformed header in CGI script" + discard handle.output.stream.writeData(msg) + except EOFError: + discard handle.stream.sclose() handle.stream = nil |