We should add support for cryptographic macs on the superblock - and it
won't be hard, but it'll need an incompatible feature bit (and we have a
new incompatible feature versioning scheme coming).

For now, just add a guard to avoid a dull ptr deref in gen_poly_key().

Reported-by: [email protected]
Signed-off-by: Kent Overstreet <[email protected]>
---
 fs/bcachefs/super-io.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/fs/bcachefs/super-io.c b/fs/bcachefs/super-io.c
index 4c29f8215d54..6a086c1c4b14 100644
--- a/fs/bcachefs/super-io.c
+++ b/fs/bcachefs/super-io.c
@@ -677,7 +677,8 @@ static int read_one_super(struct bch_sb_handle *sb, u64 
offset, struct printbuf
        }
 
        enum bch_csum_type csum_type = BCH_SB_CSUM_TYPE(sb->sb);
-       if (csum_type >= BCH_CSUM_NR) {
+       if (csum_type >= BCH_CSUM_NR ||
+           bch2_csum_type_is_encryption(csum_type)) {
                prt_printf(err, "unknown checksum type %llu", 
BCH_SB_CSUM_TYPE(sb->sb));
                return -BCH_ERR_invalid_sb_csum_type;
        }
-- 
2.45.2


Reply via email to