diff options
author | Tom Rini <trini@konsulko.com> | 2016-04-25 13:43:22 -0400 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2016-04-25 13:43:22 -0400 |
commit | e6a365289974fe030372c0fb0151df7940992d39 (patch) | |
tree | d392670876da41ffe4cee45bc873cc17cf612e07 /drivers/dfu | |
parent | 588d269ffe736c3dc03f63c3708d82eb33e670ee (diff) | |
parent | 3517de6d26de7baeddb2c9e9bf145456c35885e1 (diff) | |
download | u-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.c | 21 |
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; |