mirror of
https://git.kernel.org/pub/scm/network/wireless/iwd.git
synced 2025-11-08 12:57:22 +01:00
wiphy: fix strange compiler bug with gcc 11.2
There appears to be a compiler bug with gcc 11.2 which thinks the vht_mcs_set
is a zero length array, and the memset of size 8 is out of bounds. This is only
seen once an element is added to 'struct band'.
In file included from /usr/include/string.h:519,
from src/wiphy.c:34:
In function ‘memset’,
inlined from ‘band_new_from_message’ at src/wiphy.c:1300:2,
inlined from ‘parse_supported_bands’ at src/wiphy.c:1423:11,
inlined from ‘wiphy_parse_attributes’ at src/wiphy.c:1596:5,
inlined from ‘wiphy_update_from_genl’ at src/wiphy.c:1773:2:
/usr/include/bits/string_fortified.h:59:10: error: ‘__builtin_memset’ offset [0, 7] is out of the bounds [0, 0] [-Werror=array-bounds]
59 | return __builtin___memset_chk (__dest, __ch, __len,
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
60 | __glibc_objsize0 (__dest));
| ~~~~~~~~~~~~~~~~~~~~~~~~~~
This commit is contained in:
parent
7f63872dcf
commit
a3521ff172
@ -1285,7 +1285,15 @@ static struct band *band_new_from_message(struct l_genl_attr *band)
|
||||
toalloc = sizeof(struct band) + count * sizeof(uint8_t);
|
||||
ret = l_malloc(toalloc);
|
||||
memset(ret, 0, toalloc);
|
||||
|
||||
#if __GNUC__ == 11 && __GNUC_MINOR__ == 2
|
||||
_Pragma("GCC diagnostic push")
|
||||
_Pragma("GCC diagnostic ignored \"-Warray-bounds\"")
|
||||
#endif
|
||||
memset(ret->vht_mcs_set, 0xff, sizeof(ret->vht_mcs_set));
|
||||
#if __GNUC__ == 11 && __GNUC_MINOR__ == 2
|
||||
_Pragma("GCC diagnostic pop")
|
||||
#endif
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user