bcachefs: Guard against backpointers to unknown btrees

Reported-by: syzbot+997f0573004dcb964555@syzkaller.appspotmail.com
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
Kent Overstreet 2024-11-27 22:29:54 -05:00
parent f9e0a9be70
commit f11ca2ab18
2 changed files with 6 additions and 3 deletions

View File

@ -249,9 +249,12 @@ struct bkey_s_c bch2_backpointer_get_key(struct btree_trans *trans,
struct btree_iter *iter,
unsigned iter_flags)
{
if (likely(!bp.v->level)) {
struct bch_fs *c = trans->c;
struct bch_fs *c = trans->c;
if (unlikely(bp.v->btree_id >= btree_id_nr_alive(c)))
return bkey_s_c_null;
if (likely(!bp.v->level)) {
bch2_trans_node_iter_init(trans, iter,
bp.v->btree_id,
bp.v->pos,

View File

@ -67,7 +67,7 @@ enum bch_fsck_flags {
x(btree_node_bkey_past_bset_end, 54, 0) \
x(btree_node_bkey_bad_format, 55, 0) \
x(btree_node_bad_bkey, 56, 0) \
x(btree_node_bkey_out_of_order, 57, 0) \
x(btree_node_bkey_out_of_order, 57, FSCK_AUTOFIX) \
x(btree_root_bkey_invalid, 58, FSCK_AUTOFIX) \
x(btree_root_read_error, 59, FSCK_AUTOFIX) \
x(btree_root_bad_min_key, 60, 0) \