iwlwifi: fw: Replace zero-length arrays with flexible-array members
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 16 Feb 2022 19:50:15 +0000 (13:50 -0600)
committerKalle Valo <kvalo@kernel.org>
Wed, 6 Apr 2022 07:18:08 +0000 (10:18 +0300)
There is a regular need in the kernel to provide a way to declare
having a dynamically sized set of trailing elements in a structure.
Kernel code should always use “flexible array members”[1] for these
cases. The older style of one-element or zero-length arrays should
no longer be used[2].

[1] https://en.wikipedia.org/wiki/Flexible_array_member
[2] https://www.kernel.org/doc/html/v5.16/process/deprecated.html#zero-length-and-one-element-arrays

Link: https://github.com/KSPP/linux/issues/78
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Acked-by: Luca Coelho <luciano.coelho@intel.com>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/20220216195015.GA904148@embeddedor
drivers/net/wireless/intel/iwlwifi/fw/api/dbg-tlv.h
drivers/net/wireless/intel/iwlwifi/fw/api/debug.h
drivers/net/wireless/intel/iwlwifi/fw/api/filter.h
drivers/net/wireless/intel/iwlwifi/fw/api/scan.h
drivers/net/wireless/intel/iwlwifi/fw/api/sta.h
drivers/net/wireless/intel/iwlwifi/fw/api/tdls.h
drivers/net/wireless/intel/iwlwifi/fw/error-dump.h
drivers/net/wireless/intel/iwlwifi/fw/file.h

index 52bf96585fc6c2d4d52f27c85e57b5fdf64a0687..ba538d70985f45dc22f47f5b7e4ba04b688b09f1 100644 (file)
@@ -26,7 +26,7 @@ struct iwl_fw_ini_hcmd {
        u8 id;
        u8 group;
        __le16 reserved;
-       u8 data[0];
+       u8 data[];
 } __packed; /* FW_DEBUG_TLV_HCMD_DATA_API_S_VER_1 */
 
 /**
@@ -275,7 +275,7 @@ struct iwl_fw_ini_conf_set_tlv {
        __le32 time_point;
        __le32 set_type;
        __le32 addr_offset;
-       struct iwl_fw_ini_addr_val addr_val[0];
+       struct iwl_fw_ini_addr_val addr_val[];
 } __packed; /* FW_TLV_DEBUG_CONFIG_SET_API_S_VER_1 */
 
 /**
index 6255257ddebe32705aac9a810e3fe05175169f2c..0c555089e05fcd4b6c053ede2f0655070798d409 100644 (file)
@@ -240,7 +240,7 @@ struct iwl_mfu_assert_dump_notif {
        __le16   index_num;
        __le16   parts_num;
        __le32   data_size;
-       __le32   data[0];
+       __le32   data[];
 } __packed; /* MFU_DUMP_ASSERT_API_S_VER_1 */
 
 /**
@@ -276,7 +276,7 @@ struct iwl_mvm_marker {
        u8 marker_id;
        __le16 reserved;
        __le64 timestamp;
-       __le32 metadata[0];
+       __le32 metadata[];
 } __packed; /* MARKER_API_S_VER_1 */
 
 /**
index e44c70b7c790727ee557d99217b1cf61be6162e2..88fe61d144d425860896d1169272cdf4c288e9e9 100644 (file)
@@ -33,7 +33,7 @@ struct iwl_mcast_filter_cmd {
        u8 pass_all;
        u8 bssid[6];
        u8 reserved[2];
-       u8 addr_list[0];
+       u8 addr_list[];
 } __packed; /* MCAST_FILTERING_CMD_API_S_VER_1 */
 
 #endif /* __iwl_fw_api_filter_h__ */
index 5413087ae909dcd7a84dd4cd764b6d59fe064919..5543d9cb74c81e2b3833091d9910706c2182dafe 100644 (file)
@@ -1165,7 +1165,7 @@ struct iwl_scan_offload_profiles_query_v1 {
        u8 resume_while_scanning;
        u8 self_recovery;
        __le16 reserved;
-       struct iwl_scan_offload_profile_match_v1 matches[0];
+       struct iwl_scan_offload_profile_match_v1 matches[];
 } __packed; /* SCAN_OFFLOAD_PROFILES_QUERY_RSP_S_VER_2 */
 
 /**
@@ -1209,7 +1209,7 @@ struct iwl_scan_offload_profiles_query {
        u8 resume_while_scanning;
        u8 self_recovery;
        __le16 reserved;
-       struct iwl_scan_offload_profile_match matches[0];
+       struct iwl_scan_offload_profile_match matches[];
 } __packed; /* SCAN_OFFLOAD_PROFILES_QUERY_RSP_S_VER_3 */
 
 /**
index 5edbe27c092273a99c4fef33f6143b0041f83b6e..d62fed543276831d1d693144adc73f73767bb657 100644 (file)
@@ -477,7 +477,7 @@ struct iwl_mvm_wep_key_cmd {
        u8 decryption_type;
        u8 flags;
        u8 reserved;
-       struct iwl_mvm_wep_key wep_key[0];
+       struct iwl_mvm_wep_key wep_key[];
 } __packed; /* SEC_CURR_WEP_KEY_CMD_API_S_VER_2 */
 
 /**
index 14d35000abed2dd181df4181205e35efee5b7ee0..893438aadab00932aadad22b67f4f4e17fd90a21 100644 (file)
@@ -132,7 +132,7 @@ struct iwl_tdls_config_cmd {
 
        __le32 pti_req_data_offset;
        struct iwl_tx_cmd pti_req_tx_cmd;
-       u8 pti_req_template[0];
+       u8 pti_req_template[];
 } __packed; /* TDLS_CONFIG_CMD_API_S_VER_1 */
 
 /**
index 079fa0023bd8e61a8f3786ab492bde3b950c5498..c62576e442bdf684d7b7311b308a67e7421c1024 100644 (file)
@@ -84,7 +84,7 @@ struct iwl_fw_error_dump_data {
 struct iwl_fw_error_dump_file {
        __le32 barker;
        __le32 file_len;
-       u8 data[0];
+       u8 data[];
 } __packed;
 
 /**
index 5679a78758be3a69f8a8b79cb8c0466dd97661ec..a7817d952022361a7dc4f6a4b7a95dde163f20a6 100644 (file)
@@ -145,7 +145,7 @@ struct iwl_tlv_ucode_header {
         * Note that each TLV is padded to a length
         * that is a multiple of 4 for alignment.
         */
-       u8 data[0];
+       u8 data[];
 };
 
 /*
@@ -603,7 +603,7 @@ struct iwl_fw_dbg_dest_tlv_v1 {
        __le32 wrap_count;
        u8 base_shift;
        u8 end_shift;
-       struct iwl_fw_dbg_reg_op reg_ops[0];
+       struct iwl_fw_dbg_reg_op reg_ops[];
 } __packed;
 
 /* Mask of the register for defining the LDBG MAC2SMEM buffer SMEM size */
@@ -623,14 +623,14 @@ struct iwl_fw_dbg_dest_tlv {
        __le32 wrap_count;
        u8 base_shift;
        u8 size_shift;
-       struct iwl_fw_dbg_reg_op reg_ops[0];
+       struct iwl_fw_dbg_reg_op reg_ops[];
 } __packed;
 
 struct iwl_fw_dbg_conf_hcmd {
        u8 id;
        u8 reserved;
        __le16 len;
-       u8 data[0];
+       u8 data[];
 } __packed;
 
 /**
@@ -705,7 +705,7 @@ struct iwl_fw_dbg_trigger_tlv {
        u8 flags;
        u8 reserved[5];
 
-       u8 data[0];
+       u8 data[];
 } __packed;
 
 #define FW_DBG_START_FROM_ALIVE        0