tcurses_vt100.c: In function 'tcurses_vt100_move':
Error: tcurses_vt100.c:121:48: error: '%d' directive writing between 1 and 11 bytes into a region of size between 2 and 12 [-Werror=format-overflow=]
121 | static const char *g_movecurs = "\033[%d;%dH"; /* Move cursor to x,y */
| ^~
tcurses_vt100.c:121:39: note: directive argument in the range [-2147483647, 2147483647]
121 | static const char *g_movecurs = "\033[%d;%dH"; /* Move cursor to x,y */
| ^~~~~~~~~~~~~
tcurses_vt100.c:795:9: note: 'sprintf' output between 7 and 27 bytes into a destination of size 16
795 | sprintf(str, g_movecurs, row + 1, col + 1);
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Signed-off-by: Xiang Xiao <xiaoxiang@xiaomi.com>
The existing implementation of the termcurses_deinitterm calls
termcurses_setcolors with some hard-coded values, leading to different
terminal emulators' behavior. Instead, a reset call needs to be made to
the implementation to roll back changes.
A new operation (terminate) has been added to the termcurses_ops interface
to achieve this functionality.
The vt100's terminate implementation ensures that default foreground and
background colors are applied portably across different terminals emulators.
Gregory Nutt is has submitted the SGA
Ken Pettit has submitted the ICLA
David S. Alessio has submitted the ICLA
as a result we can migrate the licenses to Apache.
Signed-off-by: Alin Jerpelea <alin.jerpelea@sony.com>
1. A memory corruption issue that occurs from a paste operation that would overflow the fixed buffer size for keyboard processing.
2. A stall in getch() processing when there are cached keycodes in the termcurses emulation (tcurses_vt100.c).