fix a >2 year old stack overflow in the mtd rootfs split patch which only caused issues on the orion platform on 2.6.30. also merge the squashfs4 fix into the rootfs split patch
SVN-Revision: 16944master
parent
5df0606265
commit
dffad9690f
@ -1,27 +0,0 @@ |
||||
--- a/drivers/mtd/mtdpart.c
|
||||
+++ b/drivers/mtd/mtdpart.c
|
||||
@@ -538,21 +538,21 @@ static int split_squashfs(struct mtd_inf
|
||||
return -EINVAL;
|
||||
}
|
||||
|
||||
- if (*((u32 *) buf) != SQUASHFS_MAGIC) {
|
||||
+ if (SQUASHFS_MAGIC != le32_to_cpu(sb->s_magic) ) {
|
||||
printk(KERN_ALERT "split_squashfs: no squashfs found in \"%s\"\n",
|
||||
master->name);
|
||||
*split_offset = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
- if (sb->bytes_used <= 0) {
|
||||
+ if (le64_to_cpu((sb->bytes_used)) <= 0) {
|
||||
printk(KERN_ALERT "split_squashfs: squashfs is empty in \"%s\"\n",
|
||||
master->name);
|
||||
*split_offset = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
- len = (u32) sb->bytes_used;
|
||||
+ len = (u32) le64_to_cpu(sb->bytes_used);
|
||||
len += (offset & 0x000fffff);
|
||||
len += (master->erasesize - 1);
|
||||
len &= ~(master->erasesize - 1);
|
Loading…
Reference in new issue