On Thu, Apr 22, 2021 at 05:26:19PM +0200, Arnd Bergmann wrote: > From: Arnd Bergmann <arnd@xxxxxxxx> > > gcc gets confused by some of the type casts and produces an > apparently senseless warning about an out-of-bound memcpy to > an unrelated array in the same structure: > > drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c: In function 'rtw_cfg80211_ap_set_encryption': > cc1: error: writing 8 bytes into a region of size 0 [-Werror=stringop-overflow=] > In file included from drivers/staging/rtl8723bs/include/drv_types.h:32, > from drivers/staging/rtl8723bs/os_dep/ioctl_cfg80211.c:10: > drivers/staging/rtl8723bs/include/rtw_security.h:98:15: note: at offset [184, 4264] into destination object 'dot11AuthAlgrthm' of size 4 > 98 | u32 dot11AuthAlgrthm; /* 802.11 auth, could be open, shared, 8021x and authswitch */ > | ^~~~~~~~~~~~~~~~ > cc1: error: writing 8 bytes into a region of size 0 [-Werror=stringop-overflow=] > drivers/staging/rtl8723bs/include/rtw_security.h:98:15: note: at offset [264, 4344] into destination object 'dot11AuthAlgrthm' of size 4 > > This is a known gcc bug, and the patch here is only a workaround, > but the approach of using a temporary variable to hold a pointer > to the key also improves readability in addition to avoiding the > warning, so overall this should still help. What version of gcc causes this? Should this go into 5.13-final and be backported? Or is this only showing up on "unreleased" versions of gcc and it is safe to wait until 5.14? thanks, greg k-h