Re: [U-Boot] [PATCH] fdt: fix 'prop (...) not found!' error in 'fdt set' command
On 18 August 2017 at 06:41, Hannes Schmelzer wrote: > This commit brings things back to the well known working state of the > command. > - > With commit 9620d87259572ef21f0df60988d9a932ca673779 > (cmd/fdt: support single value replacement within an array) > > there was an error introduced modifying (inserting) a property to a > device-tree node. > fdt_getprop(...) returnes a len with -1 for a non-existing property, but > a memcpy with len -1 isn't a good idea and things went wrong (crash). > - > Some times later Tom did repair this > with commit 99bb38e2cce9d99238458e0f6d1880c6d2e80a4d > (fdt: Check for NULL return from fdt_getprop in 'fdt set') > > This repairs the crash but the behaviour of the command isn't like > before, it makes it impossible to insert a property. > - > > Signed-off-by: Hannes Schmelzer > > --- > > cmd/fdt.c | 8 +++- > 1 file changed, 3 insertions(+), 5 deletions(-) Acked-by: Simon Glass Applied to u-boot-dm, thanks! ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
Re: [U-Boot] [PATCH] fdt: fix 'prop (...) not found!' error in 'fdt set' command
On 18 August 2017 at 06:41, Hannes Schmelzer wrote: > This commit brings things back to the well known working state of the > command. > - > With commit 9620d87259572ef21f0df60988d9a932ca673779 > (cmd/fdt: support single value replacement within an array) > > there was an error introduced modifying (inserting) a property to a > device-tree node. > fdt_getprop(...) returnes a len with -1 for a non-existing property, but > a memcpy with len -1 isn't a good idea and things went wrong (crash). > - > Some times later Tom did repair this > with commit 99bb38e2cce9d99238458e0f6d1880c6d2e80a4d > (fdt: Check for NULL return from fdt_getprop in 'fdt set') > > This repairs the crash but the behaviour of the command isn't like > before, it makes it impossible to insert a property. > - > > Signed-off-by: Hannes Schmelzer > > --- > > cmd/fdt.c | 8 +++- > 1 file changed, 3 insertions(+), 5 deletions(-) Acked-by: Simon Glass ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot
[U-Boot] [PATCH] fdt: fix 'prop (...) not found!' error in 'fdt set' command
This commit brings things back to the well known working state of the command. - With commit 9620d87259572ef21f0df60988d9a932ca673779 (cmd/fdt: support single value replacement within an array) there was an error introduced modifying (inserting) a property to a device-tree node. fdt_getprop(...) returnes a len with -1 for a non-existing property, but a memcpy with len -1 isn't a good idea and things went wrong (crash). - Some times later Tom did repair this with commit 99bb38e2cce9d99238458e0f6d1880c6d2e80a4d (fdt: Check for NULL return from fdt_getprop in 'fdt set') This repairs the crash but the behaviour of the command isn't like before, it makes it impossible to insert a property. - Signed-off-by: Hannes Schmelzer --- cmd/fdt.c | 8 +++- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/cmd/fdt.c b/cmd/fdt.c index 118613f..d7654b2 100644 --- a/cmd/fdt.c +++ b/cmd/fdt.c @@ -284,16 +284,14 @@ static int do_fdt(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[]) len = 0; } else { ptmp = fdt_getprop(working_fdt, nodeoffset, prop, &len); - if (!ptmp) { - printf("prop (%s) not found!\n", prop); - return 1; - } if (len > SCRATCHPAD) { printf("prop (%d) doesn't fit in scratchpad!\n", len); return 1; } - memcpy(data, ptmp, len); + if (ptmp != NULL) + memcpy(data, ptmp, len); + ret = fdt_parse_prop(&argv[4], argc - 4, data, &len); if (ret != 0) return ret; -- 2.7.4 ___ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot