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

ray_cs: Fix array bounds warnings.

rx_msg is defined to have a 1 entry array at the end, so gcc warns:

drivers/net/wireless/ray_cs.c: In function ‘rx_authenticate’:
drivers/net/wireless/ray_cs.c:2436:3: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2436:3: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2436:3: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2436:3: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2436:3: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2439:15: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2452:16: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2453:18: warning: array subscript is above array bounds [-Warray-bounds]
drivers/net/wireless/ray_cs.c:2453:32: warning: array subscript is above array bounds [-Warray-bounds]

Use a zero length array and rename to "ray_rx_msg" to make sure we hit all
of the necessary cases.

Signed-off-by: David S. Miller <davem@davemloft.net>

+4 -4
+2 -2
drivers/net/wireless/ray_cs.c
··· 2426 2426 unsigned int pkt_addr, int rx_len) 2427 2427 { 2428 2428 UCHAR buff[256]; 2429 - struct rx_msg *msg = (struct rx_msg *)buff; 2429 + struct ray_rx_msg *msg = (struct ray_rx_msg *) buff; 2430 2430 2431 2431 del_timer(&local->timer); 2432 2432 ··· 2513 2513 unsigned int pkt_addr, int rx_len) 2514 2514 { 2515 2515 /* UCHAR buff[256]; 2516 - struct rx_msg *msg = (struct rx_msg *)buff; 2516 + struct ray_rx_msg *msg = (struct ray_rx_msg *) buff; 2517 2517 */ 2518 2518 pr_debug("Deauthentication frame received\n"); 2519 2519 local->authentication_state = UNAUTHENTICATED;
+2 -2
drivers/net/wireless/rayctl.h
··· 566 566 UCHAR hdr_3; 567 567 UCHAR hdr_4; 568 568 }; 569 - struct rx_msg { 569 + struct ray_rx_msg { 570 570 struct mac_header mac; 571 - UCHAR var[1]; 571 + UCHAR var[0]; 572 572 }; 573 573 574 574 struct tx_msg {