diff options
Diffstat (limited to 'lib/sqfs')
-rw-r--r-- | lib/sqfs/read_super.c | 5 | ||||
-rw-r--r-- | lib/sqfs/super.c | 5 |
2 files changed, 8 insertions, 2 deletions
diff --git a/lib/sqfs/read_super.c b/lib/sqfs/read_super.c index 8b3f019..919e720 100644 --- a/lib/sqfs/read_super.c +++ b/lib/sqfs/read_super.c @@ -54,7 +54,10 @@ int sqfs_super_read(sqfs_super_t *super, sqfs_file_t *file) if ((temp.block_size - 1) & temp.block_size) return SQFS_ERROR_SUPER_BLOCK_SIZE; - if (temp.block_size < 4096 || temp.block_size > (1 << 20)) + if (temp.block_size < SQFS_MIN_BLOCK_SIZE) + return SQFS_ERROR_SUPER_BLOCK_SIZE; + + if (temp.block_size > SQFS_MAX_BLOCK_SIZE) return SQFS_ERROR_SUPER_BLOCK_SIZE; if (temp.block_log < 12 || temp.block_log > 20) diff --git a/lib/sqfs/super.c b/lib/sqfs/super.c index 0257453..470c06a 100644 --- a/lib/sqfs/super.c +++ b/lib/sqfs/super.c @@ -20,7 +20,10 @@ int sqfs_super_init(sqfs_super_t *super, size_t block_size, sqfs_u32 mtime, if (block_size & (block_size - 1)) return SQFS_ERROR_SUPER_BLOCK_SIZE; - if (block_size < 4096 || block_size > (1 << 20)) + if (block_size < SQFS_MIN_BLOCK_SIZE) + return SQFS_ERROR_SUPER_BLOCK_SIZE; + + if (block_size > SQFS_MAX_BLOCK_SIZE) return SQFS_ERROR_SUPER_BLOCK_SIZE; memset(super, 0, sizeof(*super)); |