Re: speakup on latest kernels

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I see this patch has been added to Greg Kh's staging repo. I just
wanted to share I've been using a kernel with this patch applied for a
week on both my desktop and laptop systems with no crashes at
all. Thanks.

Greg


On Tue, Mar 03, 2020 at 02:11:28PM +0100, Samuel Thibault wrote:
> Hello,
> 
> For people who have had crashes with latest kernels and can rebuild
> their own kernel, could you try to apply the attached patch? It seems to
> be fixing things and for sure would trigger crashes when doing get_word
> while speakup is on a space. The issue has been there for at least 10
> years, it's a bit crazy that only now we have crashes with it :)
> 
> Samuel

> commit 72c8cfdd58ad6a39002f4ae93752ee28d567b69f
> Author: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
> Date:   Tue Mar 3 01:24:24 2020 +0100
> 
>     speakup: fix get_word non-space look-ahead
>     
>     get_char was erroneously given the address of the pointer to the text
>     instead of the address of the text, thus leading to random crashes when
>     the user requests speaking a word while the current position is on a space
>     character and say_word_ctl is not enabled.
>     
>     Cc: stable@xxxxxxxxxxxxxxx
>     Reported-on: https://github.com/bytefire/speakup/issues/1
>     Reported-by: Kirk Reiser <kirk@xxxxxxxxxx>
>     Reported-by: Janina Sajka <janina@xxxxxxxxxxx>
>     Reported-by: Alexandr Epaneshnikov <aarnaarn2@xxxxxxxxx>
>     Reported-by: Gregory Nowak <greg@xxxxxxxxx>
>     Reported-by: deedra waters <deedra@xxxxxxxxxxxxxxxx>
>     Signed-off-by: Samuel Thibault <samuel.thibault@xxxxxxxxxxxx>
>     TODO: Tested-by: Alexandr Epaneshnikov <aarnaarn2@xxxxxxxxx>
> 
> diff --git a/drivers/staging/speakup/main.c b/drivers/staging/speakup/main.c
> index 488f2539aa9a..81ecfd1a200d 100644
> --- a/drivers/staging/speakup/main.c
> +++ b/drivers/staging/speakup/main.c
> @@ -561,7 +561,7 @@ static u_long get_word(struct vc_data *vc)
>  		return 0;
>  	} else if (tmpx < vc->vc_cols - 2 &&
>  		   (ch == SPACE || ch == 0 || (ch < 0x100 && IS_WDLM(ch))) &&
> -		   get_char(vc, (u_short *)&tmp_pos + 1, &temp) > SPACE) {
> +		   get_char(vc, (u_short *)tmp_pos + 1, &temp) > SPACE) {
>  		tmp_pos += 2;
>  		tmpx++;
>  	} else {


-- 
web site: http://www.gregn.net
gpg public key: http://www.gregn.net/pubkey.asc
skype: gregn1
(authorization required, add me to your contacts list first)
If we haven't been in touch before, e-mail me before adding me to your contacts.

--
Free domains: http://www.eu.org/ or mail dns-manager@xxxxxx
_______________________________________________
Speakup mailing list
Speakup@xxxxxxxxxxxxxxxxx
http://linux-speakup.org/cgi-bin/mailman/listinfo/speakup



[Index of Archives]     [Linux for the Blind]     [Fedora Discussioin]     [Linux Kernel]     [Yosemite News]     [Big List of Linux Books]

  Powered by Linux