Skip to content

Commit

Permalink
omfs: refuse to mount if bitmap pointer is obviously wrong
Browse files Browse the repository at this point in the history
If the free space bitmap pointer is corrupted such that it lies outside
of the number of blocks in the filesystem, print a message and fail the
mount so the user can fix it offline.

Signed-off-by: Bob Copeland <[email protected]>
  • Loading branch information
bcopeland committed Jul 10, 2010
1 parent f068272 commit 9442e54
Showing 1 changed file with 9 additions and 0 deletions.
9 changes: 9 additions & 0 deletions fs/omfs/inode.c
Original file line number Diff line number Diff line change
Expand Up @@ -509,6 +509,15 @@ static int omfs_fill_super(struct super_block *sb, void *data, int silent)
goto out_brelse_bh2;
}

if (sbi->s_bitmap_ino != ~0ULL &&
sbi->s_bitmap_ino > sbi->s_num_blocks) {
printk(KERN_ERR "omfs: free space bitmap location is corrupt "
"(%llx, total blocks %llx)\n",
(unsigned long long) sbi->s_bitmap_ino,
(unsigned long long) sbi->s_num_blocks);
goto out_brelse_bh2;
}

ret = omfs_get_imap(sb);
if (ret)
goto out_brelse_bh2;
Expand Down

0 comments on commit 9442e54

Please sign in to comment.