diff --git a/sys/shell/shell.c b/sys/shell/shell.c index f4dce41ee3d0a889b38687547375a166ef509d77..fc670243a95aabe425a5252e8c9d3641abcd6a75 100644 --- a/sys/shell/shell.c +++ b/sys/shell/shell.c @@ -63,7 +63,8 @@ static void(*find_handler(const shell_command_t *command_list, char *command))(c static void handle_input_line(shell_t *shell, char* line) { char* saveptr; - char* command = strtok_r(line, " ", &saveptr); + char* linedup = strdup(line); + char* command = strtok_r(linedup, " ", &saveptr); void (*handler)(char*) = NULL; @@ -75,7 +76,8 @@ static void handle_input_line(shell_t *shell, char* line) { puts("shell: command not found."); } } - + + free(linedup); } int readline(shell_t *shell, char* buf, int size) {