From a4a26de7c353d088d744766e1ea932ea1943de64 Mon Sep 17 00:00:00 2001 From: Boris Faure Date: Sun, 28 May 2017 22:49:39 +0200 Subject: [PATCH] termptyesc: fix parsing size on xterm 50 command --- src/bin/termptyesc.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c index 918e9afc..b47f8bc7 100644 --- a/src/bin/termptyesc.c +++ b/src/bin/termptyesc.c @@ -1294,15 +1294,22 @@ _handle_xterm_50_command(Termpty *ty, char *s, int len) { - size_t i; - int size; - for (i = 0; i < (size_t)len - strlen(":size="); i++) + int pattern_len = strlen(":size="); + while (len > pattern_len) { - if (strncmp(s + i, ":size=", strlen(":size=")) == 0) + if (strncmp(s, ":size=", pattern_len) == 0) { - size = strtol(s + i + strlen(":size="), NULL, 10); - termio_font_size_set(ty->obj, size); + char *endptr = NULL; + int size; + + s += pattern_len; + errno = 0; + size = strtol(s, &endptr, 10); + if (endptr != s && errno == 0) + termio_font_size_set(ty->obj, size); } + len--; + s++; } }