kernel: mtdsplit_uimage: fix rootfs offset
authorMathias Kresin <dev@kresin.me>
Sun, 2 Oct 2016 17:18:56 +0000 (19:18 +0200)
committerMathias Kresin <dev@kresin.me>
Sat, 15 Oct 2016 07:01:45 +0000 (09:01 +0200)
The return value of the find_header function need to be added to the
uimage_size, otherwise mtd_find_rootfs_from() might search for a rootfs
within a custom header and fails.

Signed-off-by: Mathias Kresin <dev@kresin.me>
target/linux/generic/files/drivers/mtd/mtdsplit/mtdsplit_uimage.c

index a50735a901cb2eebece2cb3eafa3d9acf337fe6f..3ddb71bfa7f76ff08a041255351fd1fc135c215a 100644 (file)
@@ -126,7 +126,7 @@ static int __mtdsplit_parse_uimage(struct mtd_info *master,
                }
                header = (struct uimage_header *)(buf + ret);
 
-               uimage_size = sizeof(*header) + be32_to_cpu(header->ih_size);
+               uimage_size = sizeof(*header) + be32_to_cpu(header->ih_size) + ret;
                if ((offset + uimage_size) > master->size) {
                        pr_debug("uImage exceeds MTD device \"%s\"\n",
                                 master->name);