udf: validate VAT inode size for old VAT format

Validate VAT inode is large enough to contain at least the header for
pre-2.00 UDF media format.

Signed-off-by: Jan Kara <jack@suse.cz>
This commit is contained in:
Jan Kara 2026-06-12 13:50:04 +02:00
parent d8202786b3
commit 5163e6ee1e

View File

@ -1242,6 +1242,11 @@ static int udf_load_vat(struct super_block *sb, int p_index, int type1_index)
if (map->s_partition_type == UDF_VIRTUAL_MAP15) {
map->s_type_specific.s_virtual.s_start_offset = 0;
if (sbi->s_vat_inode->i_size < 36) {
udf_err(sb, "Too short VAT inode size %lld\n",
sbi->s_vat_inode->i_size);
return -EFSCORRUPTED;
}
map->s_type_specific.s_virtual.s_num_entries =
(sbi->s_vat_inode->i_size - 36) >> 2;
} else if (map->s_partition_type == UDF_VIRTUAL_MAP20) {