wifi: brcmfmac: Replace one-element array with flexible-array member
authorGustavo A. R. Silva <gustavoars@kernel.org>
Mon, 14 Nov 2022 23:01:11 +0000 (17:01 -0600)
committerKalle Valo <kvalo@kernel.org>
Tue, 22 Nov 2022 10:13:46 +0000 (12:13 +0200)
One-element arrays are deprecated, and we are replacing them with flexible
array members instead. So, replace one-element array with flexible-array
member in struct brcmf_gscan_config.

Important to mention is that doing a build before/after this patch results
in no binary output differences.

This helps with the ongoing efforts to tighten the FORTIFY_SOURCE routines
on memcpy() and help us make progress towards globally enabling
-fstrict-flex-arrays=3 [1].

Link: https://github.com/KSPP/linux/issues/79
Link: https://github.com/KSPP/linux/issues/241
Link: https://gcc.gnu.org/pipermail/gcc-patches/2022-October/602902.html
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Kees Cook <keescook@chromium.org>
Signed-off-by: Kalle Valo <kvalo@kernel.org>
Link: https://lore.kernel.org/r/7694550aa9a2753a73a687f61af9441c8cf52fd7.1668466470.git.gustavoars@kernel.org
drivers/net/wireless/broadcom/brcm80211/brcmfmac/fwil_types.h
drivers/net/wireless/broadcom/brcm80211/brcmfmac/pno.c

index f518e02..62f65dc 100644 (file)
@@ -1049,7 +1049,7 @@ struct brcmf_gscan_config {
        u8 count_of_channel_buckets;
        u8 retry_threshold;
        __le16  lost_ap_window;
-       struct brcmf_gscan_bucket_config bucket[1];
+       struct brcmf_gscan_bucket_config bucket[];
 };
 
 /**
index 170c61c..7c5da50 100644 (file)
@@ -405,7 +405,7 @@ static int brcmf_pno_config_sched_scans(struct brcmf_if *ifp)
        if (n_buckets < 0)
                return n_buckets;
 
-       gsz = sizeof(*gscan_cfg) + (n_buckets - 1) * sizeof(*buckets);
+       gsz = sizeof(*gscan_cfg) + n_buckets * sizeof(*buckets);
        gscan_cfg = kzalloc(gsz, GFP_KERNEL);
        if (!gscan_cfg) {
                err = -ENOMEM;