diff options
author | Simon Glass <sjg@chromium.org> | 2023-03-27 22:34:14 +0300 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2023-03-28 16:25:51 +0300 |
commit | be0169f07e38b81dd96bca2e80610592d89f8550 (patch) | |
tree | 09e08eefd123e358b5012df3dd88f233547b64d8 /common | |
parent | 17b45e684af98c1cf37648ad05a98d500b367c5a (diff) | |
download | u-boot-be0169f07e38b81dd96bca2e80610592d89f8550.tar.xz |
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.c | 3 |
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; |