]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - common/cli_simple.c
arm64: add support for Ka-Ro TXSD-410E
[karo-tx-uboot.git] / common / cli_simple.c
index 6c65cc686cb2d86af46574adbefdd9a41a617242..40e0beb217ce4de07008738835ce6ae0ba56ae3d 100644 (file)
@@ -12,6 +12,7 @@
 #include <common.h>
 #include <bootretry.h>
 #include <cli.h>
+#include <console.h>
 #include <linux/ctype.h>
 
 #define DEBUG_PARSER   0       /* set to 1 to debug */
@@ -68,7 +69,7 @@ void cli_simple_process_macros(const char *input, char *output)
        /* 1 = waiting for '(' or '{' */
        /* 2 = waiting for ')' or '}' */
        /* 3 = waiting for '''  */
-       char *output_start = output;
+       char __maybe_unused *output_start = output;
 
        debug_parser("[PROCESS_MACROS] INPUT len %zd: \"%s\"\n", strlen(input),
                     input);
@@ -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("<INTERRUPT>\n");
-               else
+                       rc = 0;
+               } else {
                        rc = run_command_repeatable(lastcommand, flag);
-
+               }
                if (rc <= 0) {
                        /* invalid command or not repeatable, forget it */
                        lastcommand[0] = 0;