Commit af6bb61c authored by Gustavo A. R. Silva's avatar Gustavo A. R. Silva

sctp: Replace zero-length array with flexible-array

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://github.com/KSPP/linux/issues/21Signed-off-by: default avatarGustavo A. R. Silva <gustavoars@kernel.org>
parent 50f894d5
...@@ -221,7 +221,7 @@ struct sctp_datahdr { ...@@ -221,7 +221,7 @@ struct sctp_datahdr {
__be16 stream; __be16 stream;
__be16 ssn; __be16 ssn;
__u32 ppid; __u32 ppid;
__u8 payload[0]; __u8 payload[];
}; };
struct sctp_data_chunk { struct sctp_data_chunk {
...@@ -269,7 +269,7 @@ struct sctp_inithdr { ...@@ -269,7 +269,7 @@ struct sctp_inithdr {
__be16 num_outbound_streams; __be16 num_outbound_streams;
__be16 num_inbound_streams; __be16 num_inbound_streams;
__be32 initial_tsn; __be32 initial_tsn;
__u8 params[0]; __u8 params[];
}; };
struct sctp_init_chunk { struct sctp_init_chunk {
...@@ -299,13 +299,13 @@ struct sctp_cookie_preserve_param { ...@@ -299,13 +299,13 @@ struct sctp_cookie_preserve_param {
/* Section 3.3.2.1 Host Name Address (11) */ /* Section 3.3.2.1 Host Name Address (11) */
struct sctp_hostname_param { struct sctp_hostname_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
uint8_t hostname[0]; uint8_t hostname[];
}; };
/* Section 3.3.2.1 Supported Address Types (12) */ /* Section 3.3.2.1 Supported Address Types (12) */
struct sctp_supported_addrs_param { struct sctp_supported_addrs_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__be16 types[0]; __be16 types[];
}; };
/* ADDIP Section 3.2.6 Adaptation Layer Indication */ /* ADDIP Section 3.2.6 Adaptation Layer Indication */
...@@ -317,25 +317,25 @@ struct sctp_adaptation_ind_param { ...@@ -317,25 +317,25 @@ struct sctp_adaptation_ind_param {
/* ADDIP Section 4.2.7 Supported Extensions Parameter */ /* ADDIP Section 4.2.7 Supported Extensions Parameter */
struct sctp_supported_ext_param { struct sctp_supported_ext_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__u8 chunks[0]; __u8 chunks[];
}; };
/* AUTH Section 3.1 Random */ /* AUTH Section 3.1 Random */
struct sctp_random_param { struct sctp_random_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__u8 random_val[0]; __u8 random_val[];
}; };
/* AUTH Section 3.2 Chunk List */ /* AUTH Section 3.2 Chunk List */
struct sctp_chunks_param { struct sctp_chunks_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__u8 chunks[0]; __u8 chunks[];
}; };
/* AUTH Section 3.3 HMAC Algorithm */ /* AUTH Section 3.3 HMAC Algorithm */
struct sctp_hmac_algo_param { struct sctp_hmac_algo_param {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__be16 hmac_ids[0]; __be16 hmac_ids[];
}; };
/* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2): /* RFC 2960. Section 3.3.3 Initiation Acknowledgement (INIT ACK) (2):
...@@ -350,7 +350,7 @@ struct sctp_initack_chunk { ...@@ -350,7 +350,7 @@ struct sctp_initack_chunk {
/* Section 3.3.3.1 State Cookie (7) */ /* Section 3.3.3.1 State Cookie (7) */
struct sctp_cookie_param { struct sctp_cookie_param {
struct sctp_paramhdr p; struct sctp_paramhdr p;
__u8 body[0]; __u8 body[];
}; };
/* Section 3.3.3.1 Unrecognized Parameters (8) */ /* Section 3.3.3.1 Unrecognized Parameters (8) */
...@@ -384,7 +384,7 @@ struct sctp_sackhdr { ...@@ -384,7 +384,7 @@ struct sctp_sackhdr {
__be32 a_rwnd; __be32 a_rwnd;
__be16 num_gap_ack_blocks; __be16 num_gap_ack_blocks;
__be16 num_dup_tsns; __be16 num_dup_tsns;
union sctp_sack_variable variable[0]; union sctp_sack_variable variable[];
}; };
struct sctp_sack_chunk { struct sctp_sack_chunk {
...@@ -436,7 +436,7 @@ struct sctp_shutdown_chunk { ...@@ -436,7 +436,7 @@ struct sctp_shutdown_chunk {
struct sctp_errhdr { struct sctp_errhdr {
__be16 cause; __be16 cause;
__be16 length; __be16 length;
__u8 variable[0]; __u8 variable[];
}; };
struct sctp_operr_chunk { struct sctp_operr_chunk {
...@@ -594,7 +594,7 @@ struct sctp_fwdtsn_skip { ...@@ -594,7 +594,7 @@ struct sctp_fwdtsn_skip {
struct sctp_fwdtsn_hdr { struct sctp_fwdtsn_hdr {
__be32 new_cum_tsn; __be32 new_cum_tsn;
struct sctp_fwdtsn_skip skip[0]; struct sctp_fwdtsn_skip skip[];
}; };
struct sctp_fwdtsn_chunk { struct sctp_fwdtsn_chunk {
...@@ -611,7 +611,7 @@ struct sctp_ifwdtsn_skip { ...@@ -611,7 +611,7 @@ struct sctp_ifwdtsn_skip {
struct sctp_ifwdtsn_hdr { struct sctp_ifwdtsn_hdr {
__be32 new_cum_tsn; __be32 new_cum_tsn;
struct sctp_ifwdtsn_skip skip[0]; struct sctp_ifwdtsn_skip skip[];
}; };
struct sctp_ifwdtsn_chunk { struct sctp_ifwdtsn_chunk {
...@@ -658,7 +658,7 @@ struct sctp_addip_param { ...@@ -658,7 +658,7 @@ struct sctp_addip_param {
struct sctp_addiphdr { struct sctp_addiphdr {
__be32 serial; __be32 serial;
__u8 params[0]; __u8 params[];
}; };
struct sctp_addip_chunk { struct sctp_addip_chunk {
...@@ -718,7 +718,7 @@ struct sctp_addip_chunk { ...@@ -718,7 +718,7 @@ struct sctp_addip_chunk {
struct sctp_authhdr { struct sctp_authhdr {
__be16 shkey_id; __be16 shkey_id;
__be16 hmac_id; __be16 hmac_id;
__u8 hmac[0]; __u8 hmac[];
}; };
struct sctp_auth_chunk { struct sctp_auth_chunk {
...@@ -733,7 +733,7 @@ struct sctp_infox { ...@@ -733,7 +733,7 @@ struct sctp_infox {
struct sctp_reconf_chunk { struct sctp_reconf_chunk {
struct sctp_chunkhdr chunk_hdr; struct sctp_chunkhdr chunk_hdr;
__u8 params[0]; __u8 params[];
}; };
struct sctp_strreset_outreq { struct sctp_strreset_outreq {
...@@ -741,13 +741,13 @@ struct sctp_strreset_outreq { ...@@ -741,13 +741,13 @@ struct sctp_strreset_outreq {
__be32 request_seq; __be32 request_seq;
__be32 response_seq; __be32 response_seq;
__be32 send_reset_at_tsn; __be32 send_reset_at_tsn;
__be16 list_of_streams[0]; __be16 list_of_streams[];
}; };
struct sctp_strreset_inreq { struct sctp_strreset_inreq {
struct sctp_paramhdr param_hdr; struct sctp_paramhdr param_hdr;
__be32 request_seq; __be32 request_seq;
__be16 list_of_streams[0]; __be16 list_of_streams[];
}; };
struct sctp_strreset_tsnreq { struct sctp_strreset_tsnreq {
......
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