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