aboutsummaryrefslogtreecommitdiffstats
path: root/fs/squashfs/super.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/squashfs/super.c')
-rw-r--r--fs/squashfs/super.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c
index 970b1167e7cb..29cd014ed3a1 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)