diff options
| author | Dennis Tighe <dennis.tighe@gmail.com> | 2026-08-25 22:09:34 -0700 |
|---|---|---|
| committer | Namjae Jeon <linkinjeon@kernel.org> | 2026-08-26 20:40:46 +0900 |
| commit | 323751a604e7533fa473874d999371592a614207 (patch) | |
| tree | c1f5bab16dc2cdf649382c61269f920592823c86 /tools/perf/scripts/python | |
| parent | c8504fc1245f5322af5fa5c325ab05f9cf792b87 (diff) | |
ntfs: reject invalid sectors_per_cluster in the boot sector
is_boot_sector_ntfs() checks the boot sector's sectors_per_cluster field
with a range test that rejects 0x81..0xf3 but accepts 0 and other
non-power-of-two counts. A zero value reaches parse_ntfs_boot_sector():
sectors_per_cluster_bits = ffs(sectors_per_cluster) - 1;
...
vol->cluster_size = vol->sector_size << sectors_per_cluster_bits;
ffs(0) is 0, so sectors_per_cluster_bits becomes (unsigned)-1 and the
shift is undefined:
UBSAN: shift-out-of-bounds in fs/ntfs/super.c:673:39
shift exponent 4294967295 is too large for 32-bit type 'int'
This change rejects any non-power-of-two value, since it feeds the
aforementioned shift via ffs() - 1, which only yields the correct shift for a
power of two.
Fixes: 6251f0b0de7d ("ntfs: update super block operations")
Assisted-by: Claude:claude-opus-4-8
Signed-off-by: Dennis Tighe <dennis.tighe@gmail.com>
Signed-off-by: Namjae Jeon <linkinjeon@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python')
0 files changed, 0 insertions, 0 deletions
