mtd: parser: imagetag: fix error codes in bcm963xx_parse_imagetag_partitions()
authorDan Carpenter <dan.carpenter@oracle.com>
Thu, 28 Jan 2021 09:36:52 +0000 (12:36 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Mar 2021 10:37:44 +0000 (11:37 +0100)
[ Upstream commit 12ba8f8ce29fdd277f3100052eddc1afd2f5ea3f ]

If the kstrtouint() calls fail, then this should return a negative
error code but it currently returns success.

Fixes: dd84cb022b31 ("mtd: bcm63xxpart: move imagetag parsing to its own parser")
Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com>
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Link: https://lore.kernel.org/linux-mtd/YBKFtNaFHGYBj+u4@mwanda
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/mtd/parsers/parser_imagetag.c

index d69607b..fab0949 100644 (file)
@@ -83,6 +83,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master,
                        pr_err("invalid rootfs address: %*ph\n",
                                (int)sizeof(buf->flash_image_start),
                                buf->flash_image_start);
+                       ret = -EINVAL;
                        goto out;
                }
 
@@ -92,6 +93,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master,
                        pr_err("invalid kernel address: %*ph\n",
                                (int)sizeof(buf->kernel_address),
                                buf->kernel_address);
+                       ret = -EINVAL;
                        goto out;
                }
 
@@ -100,6 +102,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master,
                        pr_err("invalid kernel length: %*ph\n",
                                (int)sizeof(buf->kernel_length),
                                buf->kernel_length);
+                       ret = -EINVAL;
                        goto out;
                }
 
@@ -108,6 +111,7 @@ static int bcm963xx_parse_imagetag_partitions(struct mtd_info *master,
                        pr_err("invalid total length: %*ph\n",
                                (int)sizeof(buf->total_length),
                                buf->total_length);
+                       ret = -EINVAL;
                        goto out;
                }