Commit 88d39fd5 authored by Kent Overstreet's avatar Kent Overstreet

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: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent c2d81c24
...@@ -473,8 +473,9 @@ static inline int update_replicas_list(struct btree_trans *trans, ...@@ -473,8 +473,9 @@ static inline int update_replicas_list(struct btree_trans *trans,
d = trans->fs_usage_deltas; d = trans->fs_usage_deltas;
n = (void *) d->d + d->used; n = (void *) d->d + d->used;
n->delta = sectors; n->delta = sectors;
memcpy((void *) n + offsetof(struct replicas_delta, r), unsafe_memcpy((void *) n + offsetof(struct replicas_delta, r),
r, replicas_entry_bytes(r)); r, replicas_entry_bytes(r),
"flexible array member embedded in strcuct with padding");
bch2_replicas_entry_sort(&n->r); bch2_replicas_entry_sort(&n->r);
d->used += b; d->used += b;
return 0; return 0;
......
...@@ -642,9 +642,11 @@ static inline void bch2_bkey_append_ptr(struct bkey_i *k, struct bch_extent_ptr ...@@ -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; ptr.type = 1 << BCH_EXTENT_ENTRY_ptr;
memcpy((void *) &k->v + bkey_val_bytes(&k->k), unsafe_memcpy((void *) &k->v + bkey_val_bytes(&k->k),
&ptr, &ptr,
sizeof(ptr)); sizeof(ptr),
"Our memcpy target is relative to a zero size array ,"
"compiler bounds checking doesn't work here");
k->k.u64s++; k->k.u64s++;
break; break;
default: default:
......
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