[PATCH 2/4] scripts: imx-image: add input validation to mw

Lucas Stach l.stach at pengutronix.de
Tue Aug 12 09:05:50 PDT 2014


Stop and print a helpful message if we encounter an
illegal token while parsing the DCD config, instead
of silently swallowing the error and pushing random
stuff into the DCD.

Signed-off-by: Lucas Stach <l.stach at pengutronix.de>
---
 scripts/imx/imx-image.c | 21 ++++++++++++++++++---
 1 file changed, 18 insertions(+), 3 deletions(-)

diff --git a/scripts/imx/imx-image.c b/scripts/imx/imx-image.c
index f4890c44d7fa..3a25c0929883 100644
--- a/scripts/imx/imx-image.c
+++ b/scripts/imx/imx-image.c
@@ -384,15 +384,30 @@ static int do_cmd_check(int argc, char *argv[])
 static int do_cmd_write_mem(int argc, char *argv[])
 {
 	uint32_t addr, val, width;
+	char *end;
 
 	if (argc != 4) {
 		fprintf(stderr, "usage: wm [8|16|32] <addr> <val>\n");
 		return -EINVAL;
 	}
 
-	width = strtoul(argv[1], NULL, 0);
-	addr = strtoul(argv[2], NULL, 0);
-	val = strtoul(argv[3], NULL, 0);
+	width = strtoul(argv[1], &end, 0);
+	if (*end != '\0') {
+		fprintf(stderr, "illegal width token \"%s\"\n", argv[1]);
+		return -EINVAL;
+	}
+
+	addr = strtoul(argv[2], &end, 0);
+	if (*end != '\0') {
+		fprintf(stderr, "illegal address token \"%s\"\n", argv[2]);
+		return -EINVAL;
+	}
+
+	val = strtoul(argv[3], &end, 0);
+	if (*end != '\0') {
+		fprintf(stderr, "illegal value token \"%s\"\n", argv[3]);
+		return -EINVAL;
+	}
 
 	width >>= 3;
 
-- 
2.0.1




More information about the barebox mailing list