summaryrefslogtreecommitdiffstats
path: root/nserver
diff options
context:
space:
mode:
authorrsiddharth <s@ricketyspace.net>2019-11-21 21:14:39 -0500
committerrsiddharth <s@ricketyspace.net>2020-04-17 20:56:35 -0400
commit43ea5e861be8ce4914c53cc78a7c4e6c9deec28e (patch)
tree9dfc5157e1c04cbfe17a2a711e2fe990cd1eca8f /nserver
parent30f4a95b0b100dd72e051d01e738126b4e0a3c3d (diff)
nserve: Update nserve.
* nserver/src/nserve.c (nserve): Add command size check.
Diffstat (limited to 'nserver')
-rw-r--r--nserver/src/nserve.c10
1 files changed, 9 insertions, 1 deletions
diff --git a/nserver/src/nserve.c b/nserver/src/nserve.c
index 18a975f..72a97be 100644
--- a/nserver/src/nserve.c
+++ b/nserver/src/nserve.c
@@ -54,8 +54,16 @@ void nserve(int sock)
ssize_t bytes = slurpsock(buf, buf_sz, sock);
check(bytes >= 0, "nserve: slurpsock failed");
+ int rc = check_cmd_size(buf, sock);
+ check(rc != -1, "command size check failed");
+
+ // Quit immediately if cmd size is too large.
+ if (rc == 1) {
+ goto error;
+ }
+
// Write response to socket.
- int rc = barfsock(buf, bytes, sock);
+ rc = barfsock(buf, bytes, sock);
check(rc != -1, "nserve: echo failed");
// Close socket.