mirror of
https://gitlab.freedesktop.org/NetworkManager/NetworkManager.git
synced 2026-02-07 04:00:32 +01:00
platform: fix GCC warning about zero-lenght array (1)
GCC 10 complains about accesses to elements of zero-length arrays that
overlap other members of the same object:
src/platform/nm-platform-utils.c: In function ‘ethtool_get_stringset’:
src/platform/nm-platform-utils.c:355:27: error: array subscript 0 is outside the bounds of an interior zero-length array ‘__u32[0]’ {aka ‘unsigned int[0]’} [-Werror=zero-length-bounds]
355 | len = sset_info.info.data[0];
| ~~~~~~~~~~~~~~~~~~~^~~
In file included from src/platform/nm-platform-utils.c:12:
/usr/include/linux/ethtool.h:647:8: note: while referencing ‘data’
647 | __u32 data[0];
| ^~~~
Fix this warning.
This commit is contained in:
parent
207e971863
commit
6345a66153
1 changed files with 12 additions and 11 deletions
|
|
@ -335,24 +335,25 @@ _ethtool_call_once (int ifindex, gpointer edata, gsize edata_size)
|
|||
static struct ethtool_gstrings *
|
||||
ethtool_get_stringset (SocketHandle *shandle, int stringset_id)
|
||||
{
|
||||
struct {
|
||||
struct ethtool_sset_info info;
|
||||
guint32 sentinel;
|
||||
} sset_info = {
|
||||
.info.cmd = ETHTOOL_GSSET_INFO,
|
||||
.info.reserved = 0,
|
||||
.info.sset_mask = (1ULL << stringset_id),
|
||||
};
|
||||
char buf[sizeof (struct ethtool_sset_info) + sizeof (guint32)];
|
||||
struct ethtool_sset_info *sset_info;
|
||||
gs_free struct ethtool_gstrings *gstrings = NULL;
|
||||
gsize gstrings_len;
|
||||
guint32 i, len;
|
||||
|
||||
if (_ethtool_call_handle (shandle, &sset_info, sizeof (sset_info)) < 0)
|
||||
sset_info = (struct ethtool_sset_info *) buf;
|
||||
*sset_info = (struct ethtool_sset_info) {
|
||||
.cmd = ETHTOOL_GSSET_INFO,
|
||||
.reserved = 0,
|
||||
.sset_mask = (1ULL << stringset_id),
|
||||
};
|
||||
|
||||
if (_ethtool_call_handle (shandle, sset_info, sizeof (*sset_info)) < 0)
|
||||
return NULL;
|
||||
if (!sset_info.info.sset_mask)
|
||||
if (!sset_info->sset_mask)
|
||||
return NULL;
|
||||
|
||||
len = sset_info.info.data[0];
|
||||
len = sset_info->data[0];
|
||||
|
||||
gstrings_len = sizeof (*gstrings) + (len * ETH_GSTRING_LEN);
|
||||
gstrings = g_malloc0 (gstrings_len);
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue