Perform a bounds check to fix a random Termcurses crash that I haven't been able to track down. The result of of the subtraction for priv->keycount should never be negative, but I think sometimes it is, so better to catch it and avoid a crash until I can track it down.
This commit is contained in:
parent
93de0c232b
commit
b285dd9b68
@ -12,6 +12,8 @@ config SYSTEM_TERMCURSES
|
||||
Terminal emulation library for curses support on TTY type consoles
|
||||
such as serial port, CDCACM, telnet, etc.
|
||||
|
||||
Must deselect CONFIG_DISABLE_POLL!
|
||||
|
||||
config SYSTEM_TERMCURSES_VT100
|
||||
bool "Terminal pdcurses support for VT-100"
|
||||
depends on SYSTEM_TERMCURSES
|
||||
|
@ -1041,6 +1041,13 @@ static int tcurses_vt100_getkeycode(FAR struct termcurses_s *dev, FAR int *speci
|
||||
/* Update keycount and keybuf */
|
||||
|
||||
priv->keycount -= x;
|
||||
if (priv->keycount < 0)
|
||||
{
|
||||
/* Hmm, some bug. Better to simply ignore than to crash */
|
||||
|
||||
priv->keycount = 0;
|
||||
}
|
||||
|
||||
if (priv->keycount != 0)
|
||||
{
|
||||
memmove(priv->keybuf, &priv->keybuf[x], priv->keycount);
|
||||
|
Loading…
x
Reference in New Issue
Block a user