Re: [PATCH] staging: r8188eu: Use flexible-array for one length array member

From: Pavel Skripkin
Date: Fri Oct 28 2022 - 10:03:42 EST


Hi Deepak R,

Deepak R Varma <drv@xxxxxxxxx> says:
Flexible-array member should be used instead of one or zero member to
meet the need for having a dynamically sized trailing elements in a
structure. Refer to links [1] and [2] for detailed guidance on this
suggestion.

[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

Issue identified using coccicheck.

Signed-off-by: Deepak R Varma <drv@xxxxxxxxx>
---
drivers/staging/r8188eu/include/odm.h | 2 +-
drivers/staging/r8188eu/include/wlan_bssdef.h | 6 +++---
2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/drivers/staging/r8188eu/include/odm.h b/drivers/staging/r8188eu/include/odm.h
index 89b01dd614ba..e2a9de5b9323 100644
--- a/drivers/staging/r8188eu/include/odm.h
+++ b/drivers/staging/r8188eu/include/odm.h
@@ -166,7 +166,7 @@ struct odm_ra_info {

struct ijk_matrix_regs_set {
bool bIQKDone;
- s32 Value[1][IQK_Matrix_REG_NUM];
+ s32 Value[][IQK_Matrix_REG_NUM];
};


you are changing the actual size of the struct. Wondering if you have tested this patch somehow

struct odm_rf_cal {
diff --git a/drivers/staging/r8188eu/include/wlan_bssdef.h b/drivers/staging/r8188eu/include/wlan_bssdef.h
index 831c465df500..33177de194eb 100644
--- a/drivers/staging/r8188eu/include/wlan_bssdef.h
+++ b/drivers/staging/r8188eu/include/wlan_bssdef.h
@@ -179,7 +179,7 @@ struct ndis_802_11_status_ind {

struct ndis_802_11_auth_evt {
struct ndis_802_11_status_ind Status;
- struct ndis_802_11_auth_req Request[1];
+ struct ndis_802_11_auth_req Request[];
};


this structure seems to be unused. Better to remove it instead of maintaining the old code

struct ndis_802_11_test {
@@ -291,7 +291,7 @@ struct pmkid_candidate {
struct ndis_802_11_pmkid_list {
u32 Version; /* Version of the structure */
u32 NumCandidates; /* No. of pmkid candidates */
- struct pmkid_candidate CandidateList[1];
+ struct pmkid_candidate CandidateList[];
};

this one as well


struct ndis_802_11_auth_encrypt {
@@ -304,7 +304,7 @@ struct ndis_802_11_cap {
u32 Version;
u32 NoOfPMKIDs;
u32 NoOfAuthEncryptPairsSupported;
- struct ndis_802_11_auth_encrypt AuthenticationEncryptionSupported[1];
+ struct ndis_802_11_auth_encrypt AuthenticationEncryptionSupported[];
};

u8 key_2char2num(u8 hch, u8 lch);
--
2.34.1


and this one as well








With regards,
Pavel Skripkin