From 9a1bac7fc8ecbc2c47b72a9df4b72dfabfe058bd Mon Sep 17 00:00:00 2001 From: rsiddharth Date: Thu, 21 Nov 2019 21:11:51 -0500 Subject: nserve: Add check_cmd_size. * nserver/src/nserve.c (check_cmd_size): New function. * nserver/src/nserve.h (CMD_SIZE): New constant. --- nserver/src/nserve.c | 19 +++++++++++++++++++ nserver/src/nserve.h | 3 +++ 2 files changed, 22 insertions(+) diff --git a/nserver/src/nserve.c b/nserver/src/nserve.c index 3d27c19..00ce905 100644 --- a/nserver/src/nserve.c +++ b/nserver/src/nserve.c @@ -25,6 +25,25 @@ int barfsock(char *buf, size_t buf_sz, int sock) return -1; } + +int check_cmd_size(char *cmd, int sock) +{ + check(cmd != NULL, "cmd is NULL"); + + size_t len = strlen(cmd); + if (len <= CMD_SIZE) { + return 0; + } + + char *err = "error: command invalid: size > 120 characters\n"; + send(sock, err, strlen(err), 0); + + return 1; + error: + return -1; +} + + void nserve(int sock) { size_t buf_sz = 200; diff --git a/nserver/src/nserve.h b/nserver/src/nserve.h index ba80fd0..14e1b02 100644 --- a/nserver/src/nserve.h +++ b/nserver/src/nserve.h @@ -2,6 +2,7 @@ #define _nserve_h #include +#include #include #include @@ -9,6 +10,8 @@ #include #include +#define CMD_SIZE 120 + void nserve(int sock); #endif -- cgit v1.2.3