Squashfs: check page size is not larger than the filesystem block size
Normally the block size (by default 128K) will be larger than the page size, unless a non-standard block size has been specified in Mksquashfs, and the page size is larger than 4K. Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
This commit is contained in:
Родитель
a37b06d589
Коммит
fffb47b80e
|
@ -157,6 +157,16 @@ static int squashfs_fill_super(struct super_block *sb, void *data, int silent)
|
||||||
if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE)
|
if (msblk->block_size > SQUASHFS_FILE_MAX_SIZE)
|
||||||
goto failed_mount;
|
goto failed_mount;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Check the system page size is not larger than the filesystem
|
||||||
|
* block size (by default 128K). This is currently not supported.
|
||||||
|
*/
|
||||||
|
if (PAGE_CACHE_SIZE > msblk->block_size) {
|
||||||
|
ERROR("Page size > filesystem block size (%d). This is "
|
||||||
|
"currently not supported!\n", msblk->block_size);
|
||||||
|
goto failed_mount;
|
||||||
|
}
|
||||||
|
|
||||||
msblk->block_log = le16_to_cpu(sblk->block_log);
|
msblk->block_log = le16_to_cpu(sblk->block_log);
|
||||||
if (msblk->block_log > SQUASHFS_FILE_MAX_LOG)
|
if (msblk->block_log > SQUASHFS_FILE_MAX_LOG)
|
||||||
goto failed_mount;
|
goto failed_mount;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче