Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

staging: rts5208: Use array_size() helper in vmalloc() and memset()

The vmalloc() function has no 2-factor argument form, so multiplication
factors need to be wrapped in array_size(). Also, while there, use
array_size() in memset().

This issue was found with the help of Coccinelle and, audited and fixed
manually.

Addresses-KSPP-ID: https://github.com/KSPP/linux/issues/83
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Link: https://lore.kernel.org/r/20200616175543.GA28687@embeddedor
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>

authored by

Gustavo A. R. Silva and committed by
Greg Kroah-Hartman
9e43eed4 21b1f2b3

+3 -3
+3 -3
drivers/staging/rts5208/ms.c
··· 2306 2306 if (!segment->l2p_table) 2307 2307 goto BUILD_FAIL; 2308 2308 } 2309 - memset((u8 *)(segment->l2p_table), 0xff, table_size * 2); 2309 + memset((u8 *)(segment->l2p_table), 0xff, array_size(table_size, 2)); 2310 2310 2311 2311 if (!segment->free_table) { 2312 - segment->free_table = vmalloc(MS_FREE_TABLE_CNT * 2); 2312 + segment->free_table = vmalloc(array_size(MS_FREE_TABLE_CNT, 2)); 2313 2313 if (!segment->free_table) 2314 2314 goto BUILD_FAIL; 2315 2315 } 2316 - memset((u8 *)(segment->free_table), 0xff, MS_FREE_TABLE_CNT * 2); 2316 + memset((u8 *)(segment->free_table), 0xff, array_size(MS_FREE_TABLE_CNT, 2)); 2317 2317 2318 2318 start = (u16)seg_no << 9; 2319 2319 end = (u16)(seg_no + 1) << 9;