dfu: ram: fix number base of RAM entity parameters
authorStephen Warren <swarren@nvidia.com>
Fri, 22 Apr 2016 19:34:16 +0000 (13:34 -0600)
committerMarek Vasut <marex@denx.de>
Mon, 25 Apr 2016 15:56:30 +0000 (17:56 +0200)
U-Boot typically interprets unprefixed numbers as base 16, and DFU RAM
entity parsing has historically done so. Reverse the change to default
to base 10, so that values in previously working command-lines aren't
mis-parsed, causing RAM corruption, crashes, hangs, etc.

Fixes: 6aeb877afef0 ("drivers: dfu: ram: fix a crash with dfu ram with invalid dfu_alt_info env")

Cc: Mugunthan V N <mugunthanvnm@ti.com>
Cc: Tom Rini <trini@konsulko.com>
Signed-off-by: Stephen Warren <swarren@nvidia.com>
Reviewed-by: Mugunthan V N <mugunthanvnm@ti.com>
Tested-by: Mugunthan V N <mugunthanvnm@ti.com>
[Test HW: AM335x BBB]

drivers/dfu/dfu_ram.c

index 1391a0d..c1b0021 100644 (file)
@@ -72,8 +72,8 @@ int dfu_fill_entity_ram(struct dfu_entity *dfu, char *devstr, char *s)
        }
 
        dfu->layout = DFU_RAM_ADDR;
-       dfu->data.ram.start = (void *)simple_strtoul(argv[1], NULL, 0);
-       dfu->data.ram.size = simple_strtoul(argv[2], NULL, 0);
+       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;