diff mbox series

wil6210: avoid gcc-10 zero-length-bounds warning

Message ID 20200505143332.1398524-1-arnd@arndb.de (mailing list archive)
State Accepted
Commit 04a4d3416372ae19471c98ea964a4740d289beac
Delegated to: Kalle Valo
Headers show
Series wil6210: avoid gcc-10 zero-length-bounds warning | expand

Commit Message

Arnd Bergmann May 5, 2020, 2:33 p.m. UTC
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 <arnd@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(-)

Comments

Kalle Valo May 5, 2020, 3:44 p.m. UTC | #1
Arnd Bergmann <arnd@arndb.de> writes:

> 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 <arnd@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.

I don't see Gustavo's patch yet so I'll take this one first.
Kalle Valo May 11, 2020, 12:33 p.m. UTC | #2
Arnd Bergmann <arnd@arndb.de> wrote:

> 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 <arnd@arndb.de>
> Signed-off-by: Kalle Valo <kvalo@codeaurora.org>

Patch applied to ath-next branch of ath.git, thanks.

04a4d3416372 wil6210: avoid gcc-10 zero-length-bounds warning
diff mbox series

Patch

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)