diff options
author | rsiddharth <s@ricketyspace.net> | 2019-11-21 21:11:51 -0500 |
---|---|---|
committer | rsiddharth <s@ricketyspace.net> | 2020-04-17 20:56:35 -0400 |
commit | 9a1bac7fc8ecbc2c47b72a9df4b72dfabfe058bd (patch) | |
tree | dc17e729159c98bf0e8fa8ac9fc4acb786b1fd94 /nserver | |
parent | 651f8a9ea23498d5adde77b89d94d85f654672b4 (diff) |
nserve: Add check_cmd_size.
* nserver/src/nserve.c (check_cmd_size): New function.
* nserver/src/nserve.h (CMD_SIZE): New constant.
Diffstat (limited to 'nserver')
-rw-r--r-- | nserver/src/nserve.c | 19 | ||||
-rw-r--r-- | nserver/src/nserve.h | 3 |
2 files changed, 22 insertions, 0 deletions
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 <stdlib.h> +#include <string.h> #include <unistd.h> #include <sys/socket.h> @@ -9,6 +10,8 @@ #include <dbg.h> #include <ringbuffer.h> +#define CMD_SIZE 120 + void nserve(int sock); #endif |