scsi: libfc: Replace one-element arrays with flexible-array members
Use flexible-array members in struct fc_fdmi_attr_entry and fs_fdmi_attrs instead of one-element arrays, and refactor the code accordingly. Also, this helps with the ongoing efforts to globally enable -Warray-bounds and get us closer to being able to tighten the FORTIFY_SOURCE routines on memcpy(). https://github.com/KSPP/linux/issues/79 https://github.com/ClangBuiltLinux/linux/issues/1590 Link: https://lore.kernel.org/r/20220214223903.GA859464@embeddedor Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
This commit is contained in:
parent
b709a4caa9
commit
c5b483d5c1
|
@ -246,7 +246,7 @@ static inline int fc_ct_ms_fill(struct fc_lport *lport,
|
|||
&entry->type);
|
||||
put_unaligned_be16(len, &entry->len);
|
||||
put_unaligned_be64(lport->wwnn,
|
||||
(__be64 *)&entry->value[0]);
|
||||
(__be64 *)&entry->value);
|
||||
|
||||
/* Manufacturer */
|
||||
entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
|
||||
|
|
|
@ -158,7 +158,7 @@ struct fc_fdmi_port_name {
|
|||
struct fc_fdmi_attr_entry {
|
||||
__be16 type;
|
||||
__be16 len;
|
||||
__u8 value[1];
|
||||
__u8 value[];
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/*
|
||||
|
@ -166,7 +166,7 @@ struct fc_fdmi_attr_entry {
|
|||
*/
|
||||
struct fs_fdmi_attrs {
|
||||
__be32 numattrs;
|
||||
struct fc_fdmi_attr_entry attr[1];
|
||||
struct fc_fdmi_attr_entry attr[];
|
||||
} __attribute__((__packed__));
|
||||
|
||||
/*
|
||||
|
|
Loading…
Reference in New Issue