[next] bcachefs: Replace zero-length arrays with flexible-array members
Commit Message
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(-)
Comments
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.
@@ -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[];
};
/*
@@ -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 = {
@@ -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)
@@ -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 */