bcachefs: fix null-ptr-deref in have_stripes()
authorJeongjun Park <aha310510@gmail.com>
Wed, 23 Oct 2024 16:13:45 +0000 (01:13 +0900)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 25 Oct 2024 17:17:06 +0000 (13:17 -0400)
c->btree_roots_known[i].b can be NULL. In this case, a NULL pointer dereference
occurs, so you need to add code to check the variable.

Reported-by: syzbot+b468b9fef56949c3b528@syzkaller.appspotmail.com
Fixes: 7773df19c35f ("bcachefs: metadata version bucket_stripe_sectors")
Signed-off-by: Jeongjun Park <aha310510@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/sb-downgrade.c

index ae715ff..8767c33 100644 (file)
@@ -143,6 +143,9 @@ UPGRADE_TABLE()
 
 static int have_stripes(struct bch_fs *c)
 {
+       if (IS_ERR_OR_NULL(c->btree_roots_known[BTREE_ID_stripes].b))
+               return 0;
+
        return !btree_node_fake(c->btree_roots_known[BTREE_ID_stripes].b);
 }