diff options
author | Phillip Lougher <phillip@lougher.demon.co.uk> | 2011-05-28 19:38:46 -0400 |
---|---|---|
committer | Phillip Lougher <phillip@lougher.demon.co.uk> | 2011-05-29 05:03:09 -0400 |
commit | d5b72ce15ea99a0b8f0d1973074c584daf92d70e (patch) | |
tree | ead92ef8a1251f6e1bffd62bd9de9d98daa6c7a2 | |
parent | d7f2ff6718efa155fd92e481a5960496d084c63f (diff) |
Squashfs: Fix sanity check patches on big-endian systems
le64 values should be swapped when accessing on
big-endian systems.
Signed-off-by: Phillip Lougher <phillip@lougher.demon.co.uk>
-rw-r--r-- | fs/squashfs/export.c | 2 | ||||
-rw-r--r-- | fs/squashfs/fragment.c | 2 | ||||
-rw-r--r-- | fs/squashfs/id.c | 2 | ||||
-rw-r--r-- | fs/squashfs/super.c | 6 |
4 files changed, 6 insertions, 6 deletions
diff --git a/fs/squashfs/export.c b/fs/squashfs/export.c index 730c56248c9b..5e1101ff276f 100644 --- a/fs/squashfs/export.c +++ b/fs/squashfs/export.c | |||
@@ -147,7 +147,7 @@ __le64 *squashfs_read_inode_lookup_table(struct super_block *sb, | |||
147 | * table[0] points to the first inode lookup table metadata block, | 147 | * table[0] points to the first inode lookup table metadata block, |
148 | * this should be less than lookup_table_start | 148 | * this should be less than lookup_table_start |
149 | */ | 149 | */ |
150 | if (!IS_ERR(table) && table[0] >= lookup_table_start) { | 150 | if (!IS_ERR(table) && le64_to_cpu(table[0]) >= lookup_table_start) { |
151 | kfree(table); | 151 | kfree(table); |
152 | return ERR_PTR(-EINVAL); | 152 | return ERR_PTR(-EINVAL); |
153 | } | 153 | } |
diff --git a/fs/squashfs/fragment.c b/fs/squashfs/fragment.c index 1516a6490bfb..0ed6edbc5c71 100644 --- a/fs/squashfs/fragment.c +++ b/fs/squashfs/fragment.c | |||
@@ -90,7 +90,7 @@ __le64 *squashfs_read_fragment_index_table(struct super_block *sb, | |||
90 | * table[0] points to the first fragment table metadata block, this | 90 | * table[0] points to the first fragment table metadata block, this |
91 | * should be less than fragment_table_start | 91 | * should be less than fragment_table_start |
92 | */ | 92 | */ |
93 | if (!IS_ERR(table) && table[0] >= fragment_table_start) { | 93 | if (!IS_ERR(table) && le64_to_cpu(table[0]) >= fragment_table_start) { |
94 | kfree(table); | 94 | kfree(table); |
95 | return ERR_PTR(-EINVAL); | 95 | return ERR_PTR(-EINVAL); |
96 | } | 96 | } |
diff --git a/fs/squashfs/id.c b/fs/squashfs/id.c index a70858e0fb44..d38ea3dab951 100644 --- a/fs/squashfs/id.c +++ b/fs/squashfs/id.c | |||
@@ -93,7 +93,7 @@ __le64 *squashfs_read_id_index_table(struct super_block *sb, | |||
93 | * table[0] points to the first id lookup table metadata block, this | 93 | * table[0] points to the first id lookup table metadata block, this |
94 | * should be less than id_table_start | 94 | * should be less than id_table_start |
95 | */ | 95 | */ |
96 | if (!IS_ERR(table) && table[0] >= id_table_start) { | 96 | if (!IS_ERR(table) && le64_to_cpu(table[0]) >= id_table_start) { |
97 | kfree(table); | 97 | kfree(table); |
98 | return ERR_PTR(-EINVAL); | 98 | return ERR_PTR(-EINVAL); |
99 | } | 99 | } |
diff --git a/fs/squashfs/super.c b/fs/squashfs/super.c index 6f26abee3597..7438850c62d0 100644 --- a/fs/squashfs/super.c +++ b/fs/squashfs/super.c | |||
@@ -245,7 +245,7 @@ allocate_id_index_table: | |||
245 | msblk->id_table = NULL; | 245 | msblk->id_table = NULL; |
246 | goto failed_mount; | 246 | goto failed_mount; |
247 | } | 247 | } |
248 | next_table = msblk->id_table[0]; | 248 | next_table = le64_to_cpu(msblk->id_table[0]); |
249 | 249 | ||
250 | /* Handle inode lookup table */ | 250 | /* Handle inode lookup table */ |
251 | lookup_table_start = le64_to_cpu(sblk->lookup_table_start); | 251 | lookup_table_start = le64_to_cpu(sblk->lookup_table_start); |
@@ -261,7 +261,7 @@ allocate_id_index_table: | |||
261 | msblk->inode_lookup_table = NULL; | 261 | msblk->inode_lookup_table = NULL; |
262 | goto failed_mount; | 262 | goto failed_mount; |
263 | } | 263 | } |
264 | next_table = msblk->inode_lookup_table[0]; | 264 | next_table = le64_to_cpu(msblk->inode_lookup_table[0]); |
265 | 265 | ||
266 | sb->s_export_op = &squashfs_export_ops; | 266 | sb->s_export_op = &squashfs_export_ops; |
267 | 267 | ||
@@ -286,7 +286,7 @@ handle_fragments: | |||
286 | msblk->fragment_index = NULL; | 286 | msblk->fragment_index = NULL; |
287 | goto failed_mount; | 287 | goto failed_mount; |
288 | } | 288 | } |
289 | next_table = msblk->fragment_index[0]; | 289 | next_table = le64_to_cpu(msblk->fragment_index[0]); |
290 | 290 | ||
291 | check_directory_table: | 291 | check_directory_table: |
292 | /* Sanity check directory_table */ | 292 | /* Sanity check directory_table */ |