treewide: Replace 0-element memcpy() destinations with flexible arrays
authorKees Cook <keescook@chromium.org>
Fri, 13 Aug 2021 19:19:24 +0000 (12:19 -0700)
committerKees Cook <keescook@chromium.org>
Mon, 18 Oct 2021 19:28:53 +0000 (12:28 -0700)
commit47c662486cccf03e7062139d069b07ab0126ef59
tree72826cdd2aa180a52b197ae7b5c84d4582993b7c
parentfa7845cfd53f3b1d3f60efa55db89805595bc045
treewide: Replace 0-element memcpy() destinations with flexible arrays

The 0-element arrays that are used as memcpy() destinations are actually
flexible arrays. Adjust their structures accordingly so that memcpy()
can better reason able their destination size (i.e. they need to be seen
as "unknown" length rather than "zero").

In some cases, use of the DECLARE_FLEX_ARRAY() helper is needed when a
flexible array is alone in a struct.

Cc: "Gustavo A. R. Silva" <gustavoars@kernel.org>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: Kalle Valo <kvalo@codeaurora.org>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: Nilesh Javali <njavali@marvell.com>
Cc: Manish Rangankar <mrangankar@marvell.com>
Cc: GR-QLogic-Storage-Upstream@marvell.com
Cc: "James E.J. Bottomley" <jejb@linux.ibm.com>
Cc: "Martin K. Petersen" <martin.petersen@oracle.com>
Cc: Larry Finger <Larry.Finger@lwfinger.net>
Cc: Phillip Potter <phil@philpotter.co.uk>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Florian Schilhabel <florian.c.schilhabel@googlemail.com>
Cc: Johannes Berg <johannes@sipsolutions.net>
Cc: Christophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Fabio Aiuto <fabioaiuto83@gmail.com>
Cc: Ross Schmidt <ross.schm.dev@gmail.com>
Cc: Marco Cesati <marcocesati@gmail.com>
Cc: ath10k@lists.infradead.org
Cc: linux-wireless@vger.kernel.org
Cc: netdev@vger.kernel.org
Cc: linux-scsi@vger.kernel.org
Cc: linux-staging@lists.linux.dev
Signed-off-by: Kees Cook <keescook@chromium.org>
drivers/net/wireless/ath/ath10k/bmi.h
drivers/scsi/qla4xxx/ql4_def.h
drivers/staging/r8188eu/include/ieee80211.h
drivers/staging/rtl8712/ieee80211.h
drivers/staging/rtl8723bs/include/ieee80211.h
include/linux/ieee80211.h
include/uapi/linux/dlm_device.h