summaryrefslogtreecommitdiff
path: root/common
diff options
context:
space:
mode:
authorSimon Glass <sjg@chromium.org>2023-03-28 08:34:14 +1300
committerTom Rini <trini@konsulko.com>2023-03-28 09:25:51 -0400
commitbe0169f07e38b81dd96bca2e80610592d89f8550 (patch)
tree09e08eefd123e358b5012df3dd88f233547b64d8 /common
parent17b45e684af98c1cf37648ad05a98d500b367c5a (diff)
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 <sjg@chromium.org> Reported-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Diffstat (limited to 'common')
-rw-r--r--common/cli_readline.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/common/cli_readline.c b/common/cli_readline.c
index 709e9c3d38..e83743e90c 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;