terminal: Don't crash on non-ascii chars
authorAndre Heider <a.heider@gmail.com>
Thu, 2 Aug 2012 18:59:43 +0000 (20:59 +0200)
committerKristian Høgsberg <krh@bitplanet.net>
Fri, 3 Aug 2012 16:54:06 +0000 (12:54 -0400)
isalpha() and isdigit() don't like huge values.
Noticed with ascii-art in the shell prompt.

clients/terminal.c

index 782f087..aa072cd 100644 (file)
@@ -2268,6 +2268,9 @@ static int wordsep(int ch)
 {
        const char extra[] = "-,./?%&#:_=+@~";
 
+       if (ch > 127)
+               return 1;
+
        return ch == 0 || !(isalpha(ch) || isdigit(ch) || strchr(extra, ch));
 }