diff options
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: |