diff options
Diffstat (limited to 'fs')
-rw-r--r-- | fs/squashfs/super.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c index ecaa2f7bdb8f..a55a9c57be18 100644 --- a/fs/squashfs/super.c +++ b/fs/squashfs/super.c | |||
@@ -158,10 +158,15 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent) | |||
158 | goto failed_mount; | 158 | goto failed_mount; |
159 | } | 159 | } |
160 | 160 | ||
161 | /* Check block log for sanity */ | ||
161 | msblk->block_log = le16_to_cpu(sblk->block_log); | 162 | msblk->block_log = le16_to_cpu(sblk->block_log); |
162 | if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) | 163 | if (msblk->block_log > SQUASHFS_FILE_MAX_LOG) |
163 | goto failed_mount; | 164 | goto failed_mount; |
164 | 165 | ||
166 | /* Check that block_size and block_log match */ | ||
167 | if (msblk->block_size != (1 << msblk->block_log)) | ||
168 | goto failed_mount; | ||
169 | |||
165 | /* Check the root inode for sanity */ | 170 | /* Check the root inode for sanity */ |
166 | root_inode = le64_to_cpu(sblk->root_inode); | 171 | root_inode = le64_to_cpu(sblk->root_inode); |
167 | if (SQUASHFS_INODE_OFFSET(root_inode) > SQUASHFS_METADATA_SIZE) | 172 | if (SQUASHFS_INODE_OFFSET(root_inode) > SQUASHFS_METADATA_SIZE) |