On Sat, May 23, 2020 at 05:12:39PM +0200, Marcus Comstedt wrote: > The symbol path already ends with a NUL character (something which is > actually checked by the code) and this NUL is included in > rel_path_len, so there is no need to add a second one. > > This change fixes incorrect display in the U-Boot command > "fdt list /__symbols__" after applying an overlay with symbols. > > Signed-off-by: Marcus Comstedt <marcus@xxxxxxxx> This patch causes "make check" failures. > --- > libfdt/fdt_overlay.c | 5 ++--- > 1 file changed, 2 insertions(+), 3 deletions(-) > > diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c > index b310e49..16d5aa0 100644 > --- a/libfdt/fdt_overlay.c > +++ b/libfdt/fdt_overlay.c > @@ -757,7 +757,7 @@ static int overlay_symbol_update(void *fdt, void *fdto) > && (memcmp(s, "/__overlay__", len - 1) == 0)) { > /* /<fragment-name>/__overlay__ */ > rel_path = ""; > - rel_path_len = 0; > + rel_path_len = 1; /* Include NUL character */ > } else { > /* Symbol refers to something that won't end > * up in the target tree */ > @@ -794,7 +794,7 @@ static int overlay_symbol_update(void *fdt, void *fdto) > } > > ret = fdt_setprop_placeholder(fdt, root_sym, name, > - len + (len > 1) + rel_path_len + 1, &p); > + len + (len > 1) + rel_path_len, &p); > if (ret < 0) > return ret; > > @@ -820,7 +820,6 @@ static int overlay_symbol_update(void *fdt, void *fdto) > > buf[len] = '/'; > memcpy(buf + len + 1, rel_path, rel_path_len); > - buf[len + 1 + rel_path_len] = '\0'; > } > > return 0; -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature