bcachefs: Fix shift greater than integer size
Reported-by: syzbot+e5292b50f1957164a4b6@syzkaller.appspotmail.com Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
This commit is contained in:
parent
600b8be5e7
commit
a0bd30e4ea
@ -660,8 +660,9 @@ int bch2_bkey_format_invalid(struct bch_fs *c,
|
||||
bch2_bkey_format_field_overflows(f, i)) {
|
||||
unsigned unpacked_bits = bch2_bkey_format_current.bits_per_field[i];
|
||||
u64 unpacked_max = ~((~0ULL << 1) << (unpacked_bits - 1));
|
||||
u64 packed_max = f->bits_per_field[i]
|
||||
? ~((~0ULL << 1) << (f->bits_per_field[i] - 1))
|
||||
unsigned packed_bits = min(64, f->bits_per_field[i]);
|
||||
u64 packed_max = packed_bits
|
||||
? ~((~0ULL << 1) << (packed_bits - 1))
|
||||
: 0;
|
||||
|
||||
prt_printf(err, "field %u too large: %llu + %llu > %llu",
|
||||
|
Loading…
Reference in New Issue
Block a user