summaryrefslogtreecommitdiff
path: root/drivers/dfu
diff options
context:
space:
mode:
authorTom Rini <trini@konsulko.com>2016-04-25 13:43:22 -0400
committerTom Rini <trini@konsulko.com>2016-04-25 13:43:22 -0400
commite6a365289974fe030372c0fb0151df7940992d39 (patch)
treed392670876da41ffe4cee45bc873cc17cf612e07 /drivers/dfu
parent588d269ffe736c3dc03f63c3708d82eb33e670ee (diff)
parent3517de6d26de7baeddb2c9e9bf145456c35885e1 (diff)
downloadu-boot-imx-e6a365289974fe030372c0fb0151df7940992d39.zip
u-boot-imx-e6a365289974fe030372c0fb0151df7940992d39.tar.gz
u-boot-imx-e6a365289974fe030372c0fb0151df7940992d39.tar.bz2
Merge branch 'master' of git://www.denx.de/git/u-boot-usb
Diffstat (limited to 'drivers/dfu')
-rw-r--r--drivers/dfu/dfu_ram.c21
1 files changed, 14 insertions, 7 deletions
diff --git a/drivers/dfu/dfu_ram.c b/drivers/dfu/dfu_ram.c
index e094a94..c1b0021 100644
--- a/drivers/dfu/dfu_ram.c
+++ b/drivers/dfu/dfu_ram.c
@@ -54,19 +54,26 @@ static int dfu_read_medium_ram(struct dfu_entity *dfu, u64 offset,
int dfu_fill_entity_ram(struct dfu_entity *dfu, char *devstr, char *s)
{
- char *st;
+ const char *argv[3];
+ const char **parg = argv;
+
+ for (; parg < argv + sizeof(argv) / sizeof(*argv); ++parg) {
+ *parg = strsep(&s, " ");
+ if (*parg == NULL) {
+ error("Invalid number of arguments.\n");
+ return -ENODEV;
+ }
+ }
dfu->dev_type = DFU_DEV_RAM;
- st = strsep(&s, " ");
- if (strcmp(st, "ram")) {
- error("unsupported device: %s\n", st);
+ if (strcmp(argv[0], "ram")) {
+ error("unsupported device: %s\n", argv[0]);
return -ENODEV;
}
dfu->layout = DFU_RAM_ADDR;
- dfu->data.ram.start = (void *)simple_strtoul(s, &s, 16);
- s++;
- dfu->data.ram.size = simple_strtoul(s, &s, 16);
+ dfu->data.ram.start = (void *)simple_strtoul(argv[1], NULL, 16);
+ dfu->data.ram.size = simple_strtoul(argv[2], NULL, 16);
dfu->write_medium = dfu_write_medium_ram;
dfu->get_medium_size = dfu_get_medium_size_ram;