]> Git Repo - J-linux.git/commitdiff
bcachefs: return err ptr instead of null in read sb clean
authorDiogo Jahchan Koike <[email protected]>
Tue, 10 Sep 2024 21:18:34 +0000 (18:18 -0300)
committerKent Overstreet <[email protected]>
Sat, 21 Sep 2024 15:39:49 +0000 (11:39 -0400)
syzbot reported a null-ptr-deref in bch2_fs_start. [0]

When a sb is marked clear but doesn't have a clean section
bch2_read_superblock_clean returns NULL which PTR_ERR_OR_ZERO
lets through, eventually leading to a null ptr dereference down
the line. Adjust read sb clean to return an ERR_PTR indicating the
invalid clean section.

[0] https://syzkaller.appspot.com/bug?extid=1cecc37d87c4286e5543

Reported-by: [email protected]
Closes: https://syzkaller.appspot.com/bug?extid=1cecc37d87c4286e5543
Signed-off-by: Diogo Jahchan Koike <[email protected]>
Signed-off-by: Kent Overstreet <[email protected]>
fs/bcachefs/sb-clean.c

index c57d42bb8d1b82a0c0ac291210140628cce8a87a..025848a9c4c03dc14a5dcda55494a7b6ef8d00d6 100644 (file)
@@ -155,7 +155,7 @@ struct bch_sb_field_clean *bch2_read_superblock_clean(struct bch_fs *c)
                SET_BCH_SB_CLEAN(c->disk_sb.sb, false);
                c->sb.clean = false;
                mutex_unlock(&c->sb_lock);
-               return NULL;
+               return ERR_PTR(-BCH_ERR_invalid_sb_clean);
        }
 
        clean = kmemdup(sb_clean, vstruct_bytes(&sb_clean->field),
This page took 0.052816 seconds and 4 git commands to generate.