diff options
Diffstat (limited to 'fs/squashfs/file.c')
-rw-r--r-- | fs/squashfs/file.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/squashfs/file.c b/fs/squashfs/file.c index 13d80947bf9e..fcff2e0487fe 100644 --- a/fs/squashfs/file.c +++ b/fs/squashfs/file.c | |||
@@ -194,7 +194,11 @@ static long long read_indexes(struct super_block *sb, int n, | |||
194 | } | 194 | } |
195 | 195 | ||
196 | for (i = 0; i < blocks; i++) { | 196 | for (i = 0; i < blocks; i++) { |
197 | int size = le32_to_cpu(blist[i]); | 197 | int size = squashfs_block_size(blist[i]); |
198 | if (size < 0) { | ||
199 | err = size; | ||
200 | goto failure; | ||
201 | } | ||
198 | block += SQUASHFS_COMPRESSED_SIZE_BLOCK(size); | 202 | block += SQUASHFS_COMPRESSED_SIZE_BLOCK(size); |
199 | } | 203 | } |
200 | n -= blocks; | 204 | n -= blocks; |
@@ -367,7 +371,7 @@ static int read_blocklist(struct inode *inode, int index, u64 *block) | |||
367 | sizeof(size)); | 371 | sizeof(size)); |
368 | if (res < 0) | 372 | if (res < 0) |
369 | return res; | 373 | return res; |
370 | return le32_to_cpu(size); | 374 | return squashfs_block_size(size); |
371 | } | 375 | } |
372 | 376 | ||
373 | /* Copy data into page cache */ | 377 | /* Copy data into page cache */ |