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

Merge tag 'array-bounds-fixes-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux

Pull array-bounds fixes from Gustavo Silva:
"Fix an out-of-bounds warning in the media subsystem.

This is part of the ongoing efforts to globally enable -Warray-bounds"

* tag 'array-bounds-fixes-5.14-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/gustavoars/linux:
media: siano: Fix out-of-bounds warnings in smscore_load_firmware_family2()

+11 -15
+9 -13
drivers/media/common/siano/smscoreapi.c
··· 908 908 void *buffer, size_t size) 909 909 { 910 910 struct sms_firmware *firmware = (struct sms_firmware *) buffer; 911 - struct sms_msg_data4 *msg; 911 + struct sms_msg_data5 *msg; 912 912 u32 mem_address, calc_checksum = 0; 913 913 u32 i, *ptr; 914 914 u8 *payload = firmware->payload; ··· 989 989 goto exit_fw_download; 990 990 991 991 if (coredev->mode == DEVICE_MODE_NONE) { 992 - struct sms_msg_data *trigger_msg = 993 - (struct sms_msg_data *) msg; 994 - 995 992 pr_debug("sending MSG_SMS_SWDOWNLOAD_TRIGGER_REQ\n"); 996 993 SMS_INIT_MSG(&msg->x_msg_header, 997 994 MSG_SMS_SWDOWNLOAD_TRIGGER_REQ, 998 - sizeof(struct sms_msg_hdr) + 999 - sizeof(u32) * 5); 995 + sizeof(*msg)); 1000 996 1001 - trigger_msg->msg_data[0] = firmware->start_address; 997 + msg->msg_data[0] = firmware->start_address; 1002 998 /* Entry point */ 1003 - trigger_msg->msg_data[1] = 6; /* Priority */ 1004 - trigger_msg->msg_data[2] = 0x200; /* Stack size */ 1005 - trigger_msg->msg_data[3] = 0; /* Parameter */ 1006 - trigger_msg->msg_data[4] = 4; /* Task ID */ 999 + msg->msg_data[1] = 6; /* Priority */ 1000 + msg->msg_data[2] = 0x200; /* Stack size */ 1001 + msg->msg_data[3] = 0; /* Parameter */ 1002 + msg->msg_data[4] = 4; /* Task ID */ 1007 1003 1008 - rc = smscore_sendrequest_and_wait(coredev, trigger_msg, 1009 - trigger_msg->x_msg_header.msg_length, 1004 + rc = smscore_sendrequest_and_wait(coredev, msg, 1005 + msg->x_msg_header.msg_length, 1010 1006 &coredev->trigger_done); 1011 1007 } else { 1012 1008 SMS_INIT_MSG(&msg->x_msg_header, MSG_SW_RELOAD_EXEC_REQ,
+2 -2
drivers/media/common/siano/smscoreapi.h
··· 624 624 u32 msg_data[2]; 625 625 }; 626 626 627 - struct sms_msg_data4 { 627 + struct sms_msg_data5 { 628 628 struct sms_msg_hdr x_msg_header; 629 - u32 msg_data[4]; 629 + u32 msg_data[5]; 630 630 }; 631 631 632 632 struct sms_data_download {