VisionFive2 Linux kernel

StarFive Tech Linux Kernel for VisionFive (JH7110) boards (mirror)

More than 9999 Commits   32 Branches   54 Tags
author: Bob Copeland <me@bobcopeland.com> 2008-08-14 18:43:59 -0400 committer: Bob Copeland <me@bobcopeland.com> 2010-07-10 14:37:39 -0400 commit: 9442e54f433eff9b6fbd0836611df4c1919df370 parent: f068272cb2f134a194b93e94a8e0672bfce48cd8
Commit Summary:
omfs: refuse to mount if bitmap pointer is obviously wrong
Diffstat:
1 file changed, 9 insertions, 0 deletions
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index bd4bf753a63b..0af5d0af9f32 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -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;