Commit c5b483d5 authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva Committed by Martin K. Petersen

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@embeddedorSigned-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: default avatarMartin K. Petersen <martin.petersen@oracle.com>
parent b709a4ca
...@@ -246,7 +246,7 @@ static inline int fc_ct_ms_fill(struct fc_lport *lport, ...@@ -246,7 +246,7 @@ static inline int fc_ct_ms_fill(struct fc_lport *lport,
&entry->type); &entry->type);
put_unaligned_be16(len, &entry->len); put_unaligned_be16(len, &entry->len);
put_unaligned_be64(lport->wwnn, put_unaligned_be64(lport->wwnn,
(__be64 *)&entry->value[0]); (__be64 *)&entry->value);
/* Manufacturer */ /* Manufacturer */
entry = (struct fc_fdmi_attr_entry *)((char *)entry->value + entry = (struct fc_fdmi_attr_entry *)((char *)entry->value +
......
...@@ -158,7 +158,7 @@ struct fc_fdmi_port_name { ...@@ -158,7 +158,7 @@ struct fc_fdmi_port_name {
struct fc_fdmi_attr_entry { struct fc_fdmi_attr_entry {
__be16 type; __be16 type;
__be16 len; __be16 len;
__u8 value[1]; __u8 value[];
} __attribute__((__packed__)); } __attribute__((__packed__));
/* /*
...@@ -166,7 +166,7 @@ struct fc_fdmi_attr_entry { ...@@ -166,7 +166,7 @@ struct fc_fdmi_attr_entry {
*/ */
struct fs_fdmi_attrs { struct fs_fdmi_attrs {
__be32 numattrs; __be32 numattrs;
struct fc_fdmi_attr_entry attr[1]; struct fc_fdmi_attr_entry attr[];
} __attribute__((__packed__)); } __attribute__((__packed__));
/* /*
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment