Commit 5bc38f44 authored by Dan Robertson's avatar Dan Robertson Committed by Kent Overstreet

bcachefs: Fix oob write in __bch2_btree_node_write

Fix a possible out of bounds write in __bch2_btree_node_write when
the data buffer padding is cleared up to the block size. The out of
bounds write is possible if the data buffers size is not a multiple
of the block size.
Signed-off-by: default avatarDan Robertson <dan@dlrobertson.com>
Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 1784d43a
......@@ -1500,6 +1500,9 @@ void __bch2_btree_node_write(struct bch_fs *c, struct btree *b)
/* bch2_varint_decode may read up to 7 bytes past the end of the buffer: */
bytes += 8;
/* buffer must be a multiple of the block size */
bytes = round_up(bytes, block_bytes(c));
data = btree_bounce_alloc(c, bytes, &used_mempool);
if (!b->written) {
......
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