The getchar() call may return an error reported as a -1, e.g. when the console detects a RATP message and switches to RATP mode. In general it probably is a good idea to ignore these errors in the console countdown operation; and in particular for the RATP usecase, this also prevents from interfering with the countdown and menu just when switching one of the consoles to RATP mode. As a hint, this is what the standard console was printing due to this issue when the RATP console was activated: Hit m for menu or any other key to stop autoboot: [: missing `]' Signed-off-by: Aleksander Morgado <aleksander@xxxxxxxxxxxxx> --- common/console_countdown.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/common/console_countdown.c b/common/console_countdown.c index 03b9b3353..36da1ce57 100644 --- a/common/console_countdown.c +++ b/common/console_countdown.c @@ -47,12 +47,14 @@ int console_countdown(int timeout_s, unsigned flags, char *out_key) do { if (tstc()) { key = getchar(); - if (flags & CONSOLE_COUNTDOWN_ANYKEY) - goto out; - if (flags & CONSOLE_COUNTDOWN_RETURN && key == '\n') - goto out; - if (flags & CONSOLE_COUNTDOWN_CTRLC && key == 3) - goto out; + if (key >= 0) { + if (flags & CONSOLE_COUNTDOWN_ANYKEY) + goto out; + if (flags & CONSOLE_COUNTDOWN_RETURN && key == '\n') + goto out; + if (flags & CONSOLE_COUNTDOWN_CTRLC && key == 3) + goto out; + } key = 0; } if ((flags & CONSOLE_COUNTDOWN_EXTERN) && -- 2.14.1 _______________________________________________ barebox mailing list barebox@xxxxxxxxxxxxxxxxxxx http://lists.infradead.org/mailman/listinfo/barebox