summaryrefslogtreecommitdiffstats
path: root/nserver/src/ncmd.c
diff options
context:
space:
mode:
Diffstat (limited to 'nserver/src/ncmd.c')
-rw-r--r--nserver/src/ncmd.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/nserver/src/ncmd.c b/nserver/src/ncmd.c
index ee6f9df..3a20db2 100644
--- a/nserver/src/ncmd.c
+++ b/nserver/src/ncmd.c
@@ -20,10 +20,9 @@ int sanitize(char *cmd)
return -1;
}
-char *check_cmd(char *cmd)
+int check_cmd(char *cmd, char *err)
{
- char *err = NULL;
-
+ check_mem(err);
check(cmd != NULL, "cmd is NULL");
int rc = sanitize(cmd);
@@ -31,19 +30,21 @@ char *check_cmd(char *cmd)
size_t len = strlen(cmd);
if (len >= CMD_MIN_SIZE && len <= CMD_MAX_SIZE) {
- return NULL;
+ return 0;
}
if (len == 0) {
- err = "closing connection\n";
+ strncpy(err, "closing connection\n", RSP_SIZE);
+ return -1;
} else {
- err = "command size invalid\n";
+ strncpy(err, "command size invalid\n", RSP_SIZE);
+ return -1;
}
- return err;
+ return 0;
error:
- err = "internal error\n";
- return err;
+ strncpy(err, "internal error\n", RSP_SIZE);
+ return -1;
}