From 46340e398e93898ce097b06f5e26c86e33fd651a Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Fri, 3 Aug 2007 14:17:21 +0000 Subject: less: add a bit more robustness in keyboard reading code --- miscutils/less.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/miscutils/less.c b/miscutils/less.c index 9b2c43bd5..a6649c5ca 100644 --- a/miscutils/less.c +++ b/miscutils/less.c @@ -699,10 +699,11 @@ static int less_getch(void) char input[16]; unsigned i; again: + memset(input, 0, sizeof(input)); getch_nowait(input, sizeof(input)); + /* Detect escape sequences (i.e. arrow keys) and handle * them accordingly */ - if (input[0] == '\033' && input[1] == '[') { set_tty_cooked(); i = input[2] - REAL_KEY_UP; @@ -740,6 +741,7 @@ static char* less_gets(int sz) * but it is needed. Is it because of stdio? */ tcsetattr(kbd_fd, TCSANOW, &term_less); + c = '\0'; read(kbd_fd, &c, 1); if (c == 0x0d) return result; -- cgit v1.2.3