libblkid: ntfs: avoid UB in signed shift
Fix OSS-Fuzz issue 53142 ( #1886 ) Fix OSS-Fuzz issue 53160 ( #1888 )
This commit is contained in:
parent
6519b62644
commit
4e3c40279a
|
@ -135,11 +135,15 @@ static int __probe_ntfs(blkid_probe pr, const struct blkid_idmag *mag, int save_
|
|||
}
|
||||
}
|
||||
|
||||
if (ns->clusters_per_mft_record > 0)
|
||||
if (ns->clusters_per_mft_record > 0) {
|
||||
mft_record_size = ns->clusters_per_mft_record *
|
||||
sectors_per_cluster * sector_size;
|
||||
else
|
||||
mft_record_size = 1 << (0 - ns->clusters_per_mft_record);
|
||||
} else {
|
||||
int8_t mft_record_size_shift = 0 - ns->clusters_per_mft_record;
|
||||
if (mft_record_size_shift < 0 || mft_record_size_shift >= 31)
|
||||
return 1;
|
||||
mft_record_size = 1 << mft_record_size_shift;
|
||||
}
|
||||
|
||||
nr_clusters = le64_to_cpu(ns->number_of_sectors) / sectors_per_cluster;
|
||||
|
||||
|
|
Loading…
Reference in New Issue