diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-06 20:47:31 +0300 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2023-10-23 00:10:16 +0300 |
commit | 88d39fd544d44e1243668eb192ff1cc5cdc2d770 (patch) | |
tree | 4dedce1097cff7f9a5ca0b9534ec5c7b86d43d65 /fs | |
parent | c2d81c24123361e5092c88e67d790097308c5b95 (diff) | |
download | linux-88d39fd544d44e1243668eb192ff1cc5cdc2d770.tar.xz |
bcachefs: Switch to unsafe_memcpy() in a few places
The new fortify checking doesn't work for us in all places; this
switches to unsafe_memcpy() where appropriate to silence a few
warnings/errors.
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/bcachefs/buckets.c | 5 | ||||
-rw-r--r-- | fs/bcachefs/extents.h | 8 |
2 files changed, 8 insertions, 5 deletions
diff --git a/fs/bcachefs/buckets.c b/fs/bcachefs/buckets.c index 46b6406d772b..a1a4b5feadaa 100644 --- a/fs/bcachefs/buckets.c +++ b/fs/bcachefs/buckets.c @@ -473,8 +473,9 @@ static inline int update_replicas_list(struct btree_trans *trans, d = trans->fs_usage_deltas; n = (void *) d->d + d->used; n->delta = sectors; - memcpy((void *) n + offsetof(struct replicas_delta, r), - r, replicas_entry_bytes(r)); + unsafe_memcpy((void *) n + offsetof(struct replicas_delta, r), + r, replicas_entry_bytes(r), + "flexible array member embedded in strcuct with padding"); bch2_replicas_entry_sort(&n->r); d->used += b; return 0; diff --git a/fs/bcachefs/extents.h b/fs/bcachefs/extents.h index 7ee8d031bb6c..db1863165d62 100644 --- a/fs/bcachefs/extents.h +++ b/fs/bcachefs/extents.h @@ -642,9 +642,11 @@ static inline void bch2_bkey_append_ptr(struct bkey_i *k, struct bch_extent_ptr ptr.type = 1 << BCH_EXTENT_ENTRY_ptr; - memcpy((void *) &k->v + bkey_val_bytes(&k->k), - &ptr, - sizeof(ptr)); + unsafe_memcpy((void *) &k->v + bkey_val_bytes(&k->k), + &ptr, + sizeof(ptr), + "Our memcpy target is relative to a zero size array ," + "compiler bounds checking doesn't work here"); k->k.u64s++; break; default: |