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 1391a0d52b6dbd8222da3943c6760bcee33fe4f7..c1b00217c911bb265df23445a50177cf7dc88eb8 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;