bcachefs: Fix a null ptr deref in bch2_btree_iter_traverse_one()
authorKent Overstreet <kent.overstreet@gmail.com>
Fri, 26 Jun 2020 17:56:21 +0000 (13:56 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:42 +0000 (17:08 -0400)
We use sentinal values that aren't NULL to indicate there's a btree node
at a higher level; occasionally, this may result in
btree_iter_up_until_good_node() stopping at one of those sentinal
values.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c

index 2bd02e804b76dd9f9c32b3cae44f6b680e4ad096..7501556c0988f6d6e922bf81bef5987aa2a405ae 100644 (file)
@@ -1235,7 +1235,7 @@ static int btree_iter_traverse_one(struct btree_iter *iter)
         *
         * XXX correctly using BTREE_ITER_UPTODATE should make this unnecessary
         */
-       if (btree_iter_node(iter, iter->level)) {
+       if (is_btree_node(iter, iter->level)) {
                BUG_ON(!btree_iter_pos_in_node(iter, iter->l[iter->level].b));
 
                btree_iter_advance_to_pos(iter, &iter->l[iter->level], -1);