Ext filesystems probe can use undefined shift if s_log_block_size
is a bogus value. Avoid this by limiting shift size.
Reproducer found with OSS-Fuzz (issue 52370) running over
cryptsetup project (blkid is used in header init).
Signed-off-by: Karel Zak <kzak@redhat.com>
le32_to_cpu(es->s_rev_level),
le16_to_cpu(es->s_minor_rev_level));
- uint32_t block_size = 1024U << le32_to_cpu(es->s_log_block_size);
+ uint32_t block_size = 0;
if (le32_to_cpu(es->s_log_block_size) < 32){
+ block_size = 1024U << le32_to_cpu(es->s_log_block_size);
blkid_probe_set_fsblocksize(pr, block_size);
blkid_probe_set_block_size(pr, block_size);
}