[PATCH] mtd: parsers: tplink_safeloader: fix uninitialized variable bug

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 64 bit systems, the highest 32 bits of the "offset" variable are
not initialized.  Also the existing code is not endian safe (it will
fail on big endian systems).  Change the type of "offset" to a u32.

Fixes: aec4d5f5ffd0 ("mtd: parsers: add TP-Link SafeLoader partitions table parser")
Signed-off-by: Dan Carpenter <dan.carpenter@xxxxxxxxxx>
---
 drivers/mtd/parsers/tplink_safeloader.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/drivers/mtd/parsers/tplink_safeloader.c b/drivers/mtd/parsers/tplink_safeloader.c
index 23584a477391..f601e7bd8627 100644
--- a/drivers/mtd/parsers/tplink_safeloader.c
+++ b/drivers/mtd/parsers/tplink_safeloader.c
@@ -23,8 +23,8 @@ static void *mtd_parser_tplink_safeloader_read_table(struct mtd_info *mtd)
 	struct safeloader_cmn_header hdr;
 	struct device_node *np;
 	size_t bytes_read;
-	size_t offset;
 	size_t size;
+	u32 offset;
 	char *buf;
 	int err;
 
@@ -34,14 +34,14 @@ static void *mtd_parser_tplink_safeloader_read_table(struct mtd_info *mtd)
 	else
 		np = of_get_child_by_name(np, "partitions");
 
-	if (of_property_read_u32(np, "partitions-table-offset", (u32 *)&offset)) {
+	if (of_property_read_u32(np, "partitions-table-offset", &offset)) {
 		pr_err("Failed to get partitions table offset\n");
 		goto err_put;
 	}
 
 	err = mtd_read(mtd, offset, sizeof(hdr), &bytes_read, (uint8_t *)&hdr);
 	if (err && !mtd_is_bitflip(err)) {
-		pr_err("Failed to read from %s at 0x%zx\n", mtd->name, offset);
+		pr_err("Failed to read from %s at 0x%x\n", mtd->name, offset);
 		goto err_put;
 	}
 
-- 
2.35.1




[Index of Archives]     [Kernel Development]     [Kernel Announce]     [Kernel Newbies]     [Linux Networking Development]     [Share Photos]     [IDE]     [Security]     [Git]     [Netfilter]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Device Mapper]

  Powered by Linux