gcc-10 warns about accesses inside of a zero-length array:

drivers/net/wireless/ath/wil6210/cfg80211.c: In function 'wil_cfg80211_scan':
drivers/net/wireless/ath/wil6210/cfg80211.c:970:23: error: array subscript 255 
is outside the bounds of an interior zero-length array 'struct <anonymous>[0]' 
[-Werror=zero-length-bounds]
  970 |   cmd.cmd.channel_list[cmd.cmd.num_channels++].channel = ch - 1;
      |   ~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
In file included from drivers/net/wireless/ath/wil6210/wil6210.h:17,
                 from drivers/net/wireless/ath/wil6210/cfg80211.c:11:
drivers/net/wireless/ath/wil6210/wmi.h:477:4: note: while referencing 
'channel_list'
  477 |  } channel_list[0];
      |    ^~~~~~~~~~~~

Turn this into a flexible array to avoid the warning.

Signed-off-by: Arnd Bergmann <a...@arndb.de>
---
Gustavo has a patch to do it for all arrays in this file, and that
should get merged as well, but this simpler patch is sufficient
to shut up the warning.
---
 drivers/net/wireless/ath/wil6210/wmi.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/wireless/ath/wil6210/wmi.h 
b/drivers/net/wireless/ath/wil6210/wmi.h
index e3558136e0c4..5bba45c1de48 100644
--- a/drivers/net/wireless/ath/wil6210/wmi.h
+++ b/drivers/net/wireless/ath/wil6210/wmi.h
@@ -474,7 +474,7 @@ struct wmi_start_scan_cmd {
        struct {
                u8 channel;
                u8 reserved;
-       } channel_list[0];
+       } channel_list[];
 } __packed;
 
 #define WMI_MAX_PNO_SSID_NUM   (16)
-- 
2.26.0

Reply via email to