Some of the computed positions of anchor block could be beyond the end of
device. Skip reading such blocks.
Signed-off-by: Jan Kara <jack@suse.cz>
uint16_t ident;
uint32_t location;
- if (varconv)
+ if (varconv) {
+ if (udf_fixed_to_variable(block) >=
+ sb->s_bdev->bd_inode->i_size >> sb->s_blocksize_bits)
+ return 0;
bh = sb_bread(sb, udf_fixed_to_variable(block));
+ }
else
bh = sb_bread(sb, block);