[PATCH weston] terminal: Don't crash when selecting non-ascii characters
Bryce Harrington
bryce at osg.samsung.com
Wed Sep 9 16:40:18 PDT 2015
On Wed, Sep 02, 2015 at 04:21:54PM -0500, Derek Foreman wrote:
> 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 <derekf at osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce at osg.samsung.com>
> ---
> clients/terminal.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> 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));
> --
> 2.5.1
>
> _______________________________________________
> wayland-devel mailing list
> wayland-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/wayland-devel
More information about the wayland-devel
mailing list