From b4babc2036ae2db48ac2a0c079c036d270472f57 Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
Date: Mon, 11 Jul 2016 16:38:36 +0200
Subject: [PATCH] input: accept only the four iTerm sequences that actually get
 handled

This fixes https://savannah.gnu.org/bugs/?48455.
---
 src/winio.c | 6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

diff --git a/src/winio.c b/src/winio.c
index 5483aad0..4388ece3 100644
--- a/src/winio.c
+++ b/src/winio.c
@@ -406,9 +406,6 @@ int parse_kbinput(WINDOW *win)
 				retval = controlleft;
 				break;
 #endif
-			    default:
-				retval = ERR;
-				break;
 			}
 			double_esc = FALSE;
 			escapes = 0;
@@ -472,7 +469,8 @@ int parse_kbinput(WINDOW *win)
 				retval = *kbinput;
 			    }
 			}
-		    } else if (*kbinput=='[') {
+		    } else if (*kbinput == '[' && key_buffer_len > 0 &&
+				'A' <= *key_buffer && *key_buffer <= 'D') {
 			/* This is an iTerm2 sequence: ^[ ^[ [ X. */
 			double_esc = TRUE;
 		    } else {
-- 
GitLab