From 6378c87d15b473697a131335f33e82315dc79756 Mon Sep 17 00:00:00 2001 From: nicm Date: Sat, 19 Jul 2025 19:20:10 +0000 Subject: [PATCH] Only accept DA and DA2 when they end in 'c', stops them being confused with theme responses.. GitHub issue 4561. --- tty-keys.c | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/tty-keys.c b/tty-keys.c index e36e7b65..267b5379 100644 --- a/tty-keys.c +++ b/tty-keys.c @@ -1422,14 +1422,16 @@ tty_keys_device_attributes(struct tty *tty, const char *buf, size_t len, return (1); /* Copy the rest up to a c. */ - for (i = 0; i < (sizeof tmp); i++) { + for (i = 0; i < sizeof tmp; i++) { if (3 + i == len) return (1); - if (buf[3 + i] == 'c') + if (buf[3 + i] >= 'a' && buf[3 + i] <= 'z') break; tmp[i] = buf[3 + i]; } - if (i == (sizeof tmp)) + if (i == sizeof tmp) + return (-1); + if (buf[3 + i] != 'c') return (-1); tmp[i] = '\0'; *size = 4 + i; @@ -1504,14 +1506,16 @@ tty_keys_device_attributes2(struct tty *tty, const char *buf, size_t len, return (1); /* Copy the rest up to a c. */ - for (i = 0; i < (sizeof tmp); i++) { + for (i = 0; i < sizeof tmp; i++) { if (3 + i == len) return (1); - if (buf[3 + i] == 'c') + if (buf[3 + i] >= 'a' && buf[3 + i] <= 'z') break; tmp[i] = buf[3 + i]; } - if (i == (sizeof tmp)) + if (i == sizeof tmp) + return (-1); + if (buf[3 + i] != 'c') return (-1); tmp[i] = '\0'; *size = 4 + i;