瀏覽代碼

udf: Silence warning about accesses beyond end of device

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>
Jan Kara 17 年之前
父節點
當前提交
4f7874c868
共有 1 個文件被更改,包括 5 次插入1 次删除
  1. 5 1
      fs/udf/super.c

+ 5 - 1
fs/udf/super.c

@@ -688,8 +688,12 @@ static int udf_check_anchor_block(struct super_block *sb, sector_t block,
 	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);