Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9ddb6c7b authored by Samuel Thibault's avatar Samuel Thibault Committed by Greg Kroah-Hartman
Browse files

staging/speakup: fix get_word non-space look-ahead

commit 9d32c0cde4e2d1343dfb88a67b2ec6397705b32b upstream.

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.

Reported-on: https://github.com/bytefire/speakup/issues/1


Reported-by: default avatarKirk Reiser <kirk@reisers.ca>
Reported-by: default avatarJanina Sajka <janina@rednote.net>
Reported-by: default avatarAlexandr Epaneshnikov <aarnaarn2@gmail.com>
Reported-by: default avatarGregory Nowak <greg@gregn.net>
Reported-by: default avatardeedra waters <deedra@the-brannons.com>
Signed-off-by: default avatarSamuel Thibault <samuel.thibault@ens-lyon.org>
Tested-by: default avatarAlexandr Epaneshnikov <aarnaarn2@gmail.com>
Tested-by: default avatarGregory Nowak <greg@gregn.net>
Tested-by: default avatarMichael Taboada <michael@michaels.world>
Cc: stable <stable@vger.kernel.org>
Link: https://lore.kernel.org/r/20200306003047.thijtmqrnayd3dmw@function


Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent 3ec88964
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -562,8 +562,7 @@ static u_long get_word(struct vc_data *vc)
		return 0;
	} else if ((tmpx < vc->vc_cols - 2)
		   && (ch == SPACE || ch == 0 || IS_WDLM(ch))
		   && ((char)get_char(vc, (u_short *) &tmp_pos + 1, &temp) >
		       SPACE)) {
		   && ((char)get_char(vc, (u_short *)tmp_pos + 1, &temp) > SPACE)) {
		tmp_pos += 2;
		tmpx++;
	} else