X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=common%2Fcli_simple.c;h=40e0beb217ce4de07008738835ce6ae0ba56ae3d;hb=refs%2Fheads%2Fkaro-txsd;hp=00a8d2f48b33d767d69310345eb900345b6197ab;hpb=0741701acf00749672f75f4c196dabd8b235f741;p=karo-tx-uboot.git diff --git a/common/cli_simple.c b/common/cli_simple.c index 00a8d2f48b..40e0beb217 100644 --- a/common/cli_simple.c +++ b/common/cli_simple.c @@ -12,6 +12,7 @@ #include #include #include +#include #include #define DEBUG_PARSER 0 /* set to 1 to debug */ @@ -258,7 +259,7 @@ int cli_simple_run_command(const char *cmd, int flag) void cli_simple_loop(void) { - static char lastcommand[CONFIG_SYS_CBSIZE] = { 0, }; + static char lastcommand[CONFIG_SYS_CBSIZE + 1] = { 0, }; int len; int flag; @@ -275,7 +276,8 @@ void cli_simple_loop(void) flag = 0; /* assume no special flags for now */ if (len > 0) - strcpy(lastcommand, console_buffer); + strlcpy(lastcommand, console_buffer, + CONFIG_SYS_CBSIZE + 1); else if (len == 0) flag |= CMD_FLAG_REPEAT; #ifdef CONFIG_BOOT_RETRY_TIME @@ -292,11 +294,12 @@ void cli_simple_loop(void) } #endif - if (len == -1) + if (len == -1) { puts("\n"); - else + rc = 0; + } else { rc = run_command_repeatable(lastcommand, flag); - + } if (rc <= 0) { /* invalid command or not repeatable, forget it */ lastcommand[0] = 0;