From: Derek Foreman Date: Wed, 2 Sep 2015 21:21:54 +0000 (-0500) Subject: terminal: Don't crash when selecting non-ascii characters X-Git-Tag: 1.8.93~4 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=7978bc82dd056933a3998c54d9a7bd43cecae19f;p=platform%2Fupstream%2Fweston.git terminal: Don't crash when selecting non-ascii characters So it turns out if you cat /dev/urandom and drag select in the mess you can crash weston-terminal. There may also be more legitimate ways of doing this. The reason is that isalpha() and isdigit() only accept values that fit within an unsigned char or are EOF. By treating values < 0 the same as values > 127 we prevent this crash. Signed-off-by: Derek Foreman Reviewed-by: Bryce Harrington --- diff --git a/clients/terminal.c b/clients/terminal.c index f1d8fc0..c5d5d60 100644 --- a/clients/terminal.c +++ b/clients/terminal.c @@ -2579,7 +2579,7 @@ static int wordsep(int ch) { const char extra[] = "-,./?%&#:_=+@~"; - if (ch > 127) + if (ch > 127 || ch < 0) return 1; return ch == 0 || !(isalpha(ch) || isdigit(ch) || strchr(extra, ch));