speakup on latest kernels

Gregory Nowak greg at gregn.net
Fri Mar 13 19:48:01 EDT 2020


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 at ens-lyon.org>
> 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 at vger.kernel.org
>     Reported-on: https://github.com/bytefire/speakup/issues/1
>     Reported-by: Kirk Reiser <kirk at reisers.ca>
>     Reported-by: Janina Sajka <janina at rednote.net>
>     Reported-by: Alexandr Epaneshnikov <aarnaarn2 at gmail.com>
>     Reported-by: Gregory Nowak <greg at gregn.net>
>     Reported-by: deedra waters <deedra at the-brannons.com>
>     Signed-off-by: Samuel Thibault <samuel.thibault at ens-lyon.org>
>     TODO: Tested-by: Alexandr Epaneshnikov <aarnaarn2 at gmail.com>
> 
> 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 at EU.org


More information about the Speakup mailing list