Skip to content

Commit 008ab3c

Browse files
Dan Carpentergregkh
authored andcommitted
speakup: Fix sizeof() vs ARRAY_SIZE() bug
The "buf" pointer is an array of u16 values. This code should be using ARRAY_SIZE() (which is 256) instead of sizeof() (which is 512), otherwise it can the still got out of bounds. Fixes: c8d2f34 ("speakup: Avoid crash on very long word") Cc: [email protected] Signed-off-by: Dan Carpenter <[email protected]> Reviewed-by: Samuel Thibault <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Greg Kroah-Hartman <[email protected]>
1 parent dd5a440 commit 008ab3c

File tree

1 file changed

+1
-1
lines changed
  • drivers/accessibility/speakup

1 file changed

+1
-1
lines changed

drivers/accessibility/speakup/main.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -574,7 +574,7 @@ static u_long get_word(struct vc_data *vc)
574574
}
575575
attr_ch = get_char(vc, (u_short *)tmp_pos, &spk_attr);
576576
buf[cnt++] = attr_ch;
577-
while (tmpx < vc->vc_cols - 1 && cnt < sizeof(buf) - 1) {
577+
while (tmpx < vc->vc_cols - 1 && cnt < ARRAY_SIZE(buf) - 1) {
578578
tmp_pos += 2;
579579
tmpx++;
580580
ch = get_char(vc, (u_short *)tmp_pos, &temp);

0 commit comments

Comments
 (0)