From be0169f07e38b81dd96bca2e80610592d89f8550 Mon Sep 17 00:00:00 2001 From: Simon Glass Date: Tue, 28 Mar 2023 08:34:14 +1300 Subject: cli: Correct handling of invalid escape sequences in cread_line() The second call to cli_ch_process() is in the wrong place, meaning that the one of the characters of an invalid escape sequence is swallowed instead of being returned. Fix the bug and add a test to cover this. This behaviour matches that of the code before cli_getch() was introduced. This was verified on the commit before b08e9d4b66 i.e.: 7d850f85aad ("sandbox: Enable mmc command and legacy images") Signed-off-by: Simon Glass Reported-by: Heinrich Schuchardt --- common/cli_readline.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) (limited to 'common/cli_readline.c') diff --git a/common/cli_readline.c b/common/cli_readline.c index 709e9c3d38b..e83743e90c9 100644 --- a/common/cli_readline.c +++ b/common/cli_readline.c @@ -284,10 +284,9 @@ static int cread_line(const char *const prompt, char *buf, unsigned int *len, } ichar = getcmd_getch(); + ichar = cli_ch_process(cch, ichar); } - ichar = cli_ch_process(cch, ichar); - /* ichar=0x0 when error occurs in U-Boot getc */ if (!ichar) continue; -- cgit v1.2.3