[RESEND PATCH v3 1/2] cli: Correct several bugs in cli_getch()

Simon Glass sjg at chromium.org
Mon Mar 27 21:08:40 CEST 2023


+Tom Rini

Hi,

On Tue, 28 Mar 2023 at 08:04, Simon Glass <sjg at chromium.org> wrote:
>
> This function does not behave as expected when unknown escape sequences
> are sent to it:
>
> - it fails to store (and thus echo) the last character of the invalid
>   sequence
> - it fails to set esc_len to 0 when it finishes emitting the invalid
>   sequence, meaning that the following character will appear to be part
>   of a new escape sequence
> - it processes the first character of the rejected sequence as a valid
>   character, just starting the sequence all over again
>
> The last two bugs conspire to produce an "impossible condition #876"
> message which is the main symptom of this behaviour.
>
> Fix these bugs and add a test to verify the behaviour.
>
> Signed-off-by: Simon Glass <sjg at chromium.org>
> Reported-by: Heinrich Schuchardt <xypron.glpk at gmx.de>
> ---
>
> (no changes since v1)
>
>  common/cli_getch.c   |  5 +++--
>  test/common/Makefile |  1 +
>  test/common/cread.c  | 48 ++++++++++++++++++++++++++++++++++++++++++++
>  3 files changed, 52 insertions(+), 2 deletions(-)
>  create mode 100644 test/common/cread.c

I would like to get this series into the release since it fixes an annoying bug.

We can talk about changes of behaviour after that.

Regards,
Simon


More information about the U-Boot mailing list