diff options
author | Dmitriy Monakhov <dmonakhov@openvz.org> | 2007-05-08 03:35:22 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-05-08 14:15:22 -0400 |
commit | 951744fea0aea9adbd7c8cacb3605f2d69a66f96 (patch) | |
tree | c46aec13c4a5f3924bc5a73bced68269f275ff2b /fs/udf | |
parent | 31170b6ad4ebe6c43c1cc3b8112274cf59474de0 (diff) |
udf: possible null pointer dereference while load_partition
sb_read may return NULL, let's explicitly check it.
Signed-off-by: Dmitriy Monakhov <dmonakhov@openvz.org>
Cc: Jan Kara <jack@ucw.cz>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/udf')
-rw-r--r-- | fs/udf/super.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/udf/super.c b/fs/udf/super.c index a92daaba6c4c..9b8644a06e53 100644 --- a/fs/udf/super.c +++ b/fs/udf/super.c | |||
@@ -1403,6 +1403,8 @@ udf_load_partition(struct super_block *sb, kernel_lb_addr *fileset) | |||
1403 | 1403 | ||
1404 | pos = udf_block_map(UDF_SB_VAT(sb), 0); | 1404 | pos = udf_block_map(UDF_SB_VAT(sb), 0); |
1405 | bh = sb_bread(sb, pos); | 1405 | bh = sb_bread(sb, pos); |
1406 | if (!bh) | ||
1407 | return 1; | ||
1406 | UDF_SB_TYPEVIRT(sb,i).s_start_offset = | 1408 | UDF_SB_TYPEVIRT(sb,i).s_start_offset = |
1407 | le16_to_cpu(((struct virtualAllocationTable20 *)bh->b_data + udf_ext0_offset(UDF_SB_VAT(sb)))->lengthHeader) + | 1409 | le16_to_cpu(((struct virtualAllocationTable20 *)bh->b_data + udf_ext0_offset(UDF_SB_VAT(sb)))->lengthHeader) + |
1408 | udf_ext0_offset(UDF_SB_VAT(sb)); | 1410 | udf_ext0_offset(UDF_SB_VAT(sb)); |