From c54cb7897808afb44c70dda7314e79a83a48630d Mon Sep 17 00:00:00 2001 From: Michael Grzeschik Date: Sun, 26 Jan 2014 18:12:21 +0100 Subject: [PATCH] scripts: kwbimage: fix imagebuild on 32bit host system We have to use strtoul to run the tool working on 32bit systems. Otherwise it will generate signed numbers for strings representing values with the 32nd bit set. Signed-off-by: Michael Grzeschik Acked-by: Sebastian Hesselbarth Signed-off-by: Sascha Hauer --- scripts/kwbimage.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/kwbimage.c b/scripts/kwbimage.c index 82cf21c4c..cd8745609 100644 --- a/scripts/kwbimage.c +++ b/scripts/kwbimage.c @@ -1024,20 +1024,20 @@ static int image_create_config_parse_oneline(char *line, } else if (!strcmp(keyword, "DESTADDR")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_DEST_ADDR; - el->dstaddr = strtol(value, NULL, 16); + el->dstaddr = strtoul(value, NULL, 16); } else if (!strcmp(keyword, "EXECADDR")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_EXEC_ADDR; - el->execaddr = strtol(value, NULL, 16); + el->execaddr = strtoul(value, NULL, 16); } else if (!strcmp(keyword, "NAND_BLKSZ")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_NAND_BLKSZ; - el->nandblksz = strtol(value, NULL, 16); + el->nandblksz = strtoul(value, NULL, 16); } else if (!strcmp(keyword, "NAND_BADBLK_LOCATION")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_NAND_BADBLK_LOCATION; el->nandbadblklocation = - strtol(value, NULL, 16); + strtoul(value, NULL, 16); } else if (!strcmp(keyword, "NAND_ECCMODE")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_NAND_ECC_MODE; @@ -1050,7 +1050,7 @@ static int image_create_config_parse_oneline(char *line, } else if (!strcmp(keyword, "NAND_PAGESZ")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_NAND_PAGESZ; - el->nandpagesz = strtol(value, NULL, 16); + el->nandpagesz = strtoul(value, NULL, 16); } else if (!strcmp(keyword, "BINARY")) { char *value = strtok_r(NULL, " ", &saveptr); int argi = 0; @@ -1061,7 +1061,7 @@ static int image_create_config_parse_oneline(char *line, value = strtok_r(NULL, " ", &saveptr); if (!value) break; - el->binary.args[argi] = strtol(value, NULL, 16); + el->binary.args[argi] = strtoul(value, NULL, 16); argi++; if (argi >= BINARY_MAX_ARGS) { fprintf(stderr, @@ -1080,8 +1080,8 @@ static int image_create_config_parse_oneline(char *line, } el->type = IMAGE_CFG_DATA; - el->regdata.raddr = strtol(value1, NULL, 16); - el->regdata.rdata = strtol(value2, NULL, 16); + el->regdata.raddr = strtoul(value1, NULL, 16); + el->regdata.rdata = strtoul(value2, NULL, 16); } else if (!strcmp(keyword, "PAYLOAD")) { char *value = strtok_r(NULL, " ", &saveptr); el->type = IMAGE_CFG_PAYLOAD;