From 116c6de724092227375371b4d3f5007d3f335008 Mon Sep 17 00:00:00 2001 From: Sultan Qasim Khan Date: Thu, 14 Mar 2024 09:16:56 -0400 Subject: [PATCH] ieee80211: quash more ubsan warnings Seems it doesn't like indexing into zero length arrays either, it only allows C99 flexible array members. Fixes warnings like: UBSAN: array-index-out-of-bounds in /var/lib/dkms/rtl88x2bu/5.13.1/build/os_dep/linux/ioctl_cfg80211.c:1822:110 index 24 is out of range for type 'u8 [*]' --- include/ieee80211.h | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/include/ieee80211.h b/include/ieee80211.h index 62d0f66..9687bfc 100644 --- a/include/ieee80211.h +++ b/include/ieee80211.h @@ -335,7 +335,7 @@ typedef struct ieee_param { struct { u32 len; u8 reserved[32]; - u8 data[0]; + u8 data[]; } wpa_ie; struct { int command; @@ -348,7 +348,7 @@ typedef struct ieee_param { u8 idx; u8 seq[8]; /* sequence counter (set: RX, get: TX) */ u16 key_len; - u8 key[0]; + u8 key[]; } crypt; #ifdef CONFIG_AP_MODE struct { @@ -360,7 +360,7 @@ typedef struct ieee_param { } add_sta; struct { u8 reserved[2];/* for set max_num_sta */ - u8 buf[0]; + u8 buf[]; } bcn_ie; #endif @@ -371,7 +371,7 @@ typedef struct ieee_param { typedef struct ieee_param_ex { u32 cmd; u8 sta_addr[ETH_ALEN]; - u8 data[0]; + u8 data[]; } ieee_param_ex; struct sta_data { @@ -1177,7 +1177,7 @@ struct ieee80211_info_element_hdr { struct ieee80211_info_element { u8 id; u8 len; - u8 data[0]; + u8 data[]; } __attribute__((packed)); #endif @@ -1249,7 +1249,7 @@ struct ieee80211_txb { u16 reserved; u16 frag_size; u16 payload_size; - struct sk_buff *fragments[0]; + struct sk_buff *fragments[]; };