Message ID | ZWYv/ywR/qxUhVSU@work (mailing list archive) |
---|---|
State | Mainlined |
Commit | 62286a08c3f352d2c19c08da3b2a5b9d23f34d61 |
Headers | show |
Series | [next] bcachefs: Replace zero-length arrays with flexible-array members | expand |
On Tue, Nov 28, 2023 at 12:22:55PM -0600, Gustavo A. R. Silva wrote: > Fake flexible arrays (zero-length and one-element arrays) are > deprecated, and should be replaced by flexible-array members. > > So, replace zero-length arrays with flexible-array members > in multiple structures. > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> These look like straight-forward conversions. Thanks! Reviewed-by: Kees Cook <keescook@chromium.org>
On 11/29/23 14:15, Kees Cook wrote: > On Tue, Nov 28, 2023 at 12:22:55PM -0600, Gustavo A. R. Silva wrote: >> Fake flexible arrays (zero-length and one-element arrays) are >> deprecated, and should be replaced by flexible-array members. >> >> So, replace zero-length arrays with flexible-array members >> in multiple structures. >> >> Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> > > These look like straight-forward conversions. Thanks! Yep, these also fix a buch of -Warray-bounds warnings reported by 0-day: https://lore.kernel.org/lkml/202311290720.TzNYq81c-lkp@intel.com/ > > Reviewed-by: Kees Cook <keescook@chromium.org> > Thanks! -- Gustavo
On Tue, Nov 28, 2023 at 12:22:55PM -0600, Gustavo A. R. Silva wrote: > Fake flexible arrays (zero-length and one-element arrays) are > deprecated, and should be replaced by flexible-array members. > > So, replace zero-length arrays with flexible-array members > in multiple structures. > > Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> There are some ZLAs I hadn't converted because they led to new warnings - in particular, array of flexible members. I don't think that applies to any of the ones you changed (replicas_delta_list, maybe?) - but it's something we need to figure out if we're getting serious about this.
diff --git a/fs/bcachefs/bcachefs_ioctl.h b/fs/bcachefs/bcachefs_ioctl.h index 44ba7a87aea7..43822c17297c 100644 --- a/fs/bcachefs/bcachefs_ioctl.h +++ b/fs/bcachefs/bcachefs_ioctl.h @@ -276,7 +276,7 @@ struct bch_ioctl_fs_usage { __u32 replica_entries_bytes; __u32 pad; - struct bch_replicas_usage replicas[0]; + struct bch_replicas_usage replicas[]; }; /* @@ -313,7 +313,7 @@ struct bch_ioctl_dev_usage_v2 { __u32 bucket_size; __u64 nr_buckets; - struct bch_ioctl_dev_usage_type d[0]; + struct bch_ioctl_dev_usage_type d[]; }; /* diff --git a/fs/bcachefs/io_read.c b/fs/bcachefs/io_read.c index 3281c4dd1d52..4c9eaf7cea8d 100644 --- a/fs/bcachefs/io_read.c +++ b/fs/bcachefs/io_read.c @@ -80,7 +80,7 @@ struct promote_op { struct bpos pos; struct data_update write; - struct bio_vec bi_inline_vecs[0]; /* must be last */ + struct bio_vec bi_inline_vecs[]; /* must be last */ }; static const struct rhashtable_params bch_promote_params = { diff --git a/fs/bcachefs/move.c b/fs/bcachefs/move.c index c5518a866276..5a693c3e2ed2 100644 --- a/fs/bcachefs/move.c +++ b/fs/bcachefs/move.c @@ -81,7 +81,7 @@ struct moving_io { struct data_update write; /* Must be last since it is variable size */ - struct bio_vec bi_inline_vecs[0]; + struct bio_vec bi_inline_vecs[]; }; static void move_free(struct moving_io *io) diff --git a/fs/bcachefs/replicas_types.h b/fs/bcachefs/replicas_types.h index 030324078bba..ac90d142c4e8 100644 --- a/fs/bcachefs/replicas_types.h +++ b/fs/bcachefs/replicas_types.h @@ -21,7 +21,7 @@ struct replicas_delta_list { u64 nr_inodes; u64 persistent_reserved[BCH_REPLICAS_MAX]; struct {} memset_end; - struct replicas_delta d[0]; + struct replicas_delta d[]; }; #endif /* _BCACHEFS_REPLICAS_TYPES_H */
Fake flexible arrays (zero-length and one-element arrays) are deprecated, and should be replaced by flexible-array members. So, replace zero-length arrays with flexible-array members in multiple structures. Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org> --- fs/bcachefs/bcachefs_ioctl.h | 4 ++-- fs/bcachefs/io_read.c | 2 +- fs/bcachefs/move.c | 2 +- fs/bcachefs/replicas_types.h | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-)