Re: [PATCH] libfdt: Remove superfluous NUL character from overlay symbols

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]



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


[Index of Archives]     [Device Tree]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux