devicetree-compiler.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] dtc: Consider one-character strings as strings
@ 2020-06-23  9:43 Geert Uytterhoeven
       [not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
  0 siblings, 1 reply; 2+ messages in thread
From: Geert Uytterhoeven @ 2020-06-23  9:43 UTC (permalink / raw)
  To: David Gibson, Jon Loeliger
  Cc: devicetree-compiler-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA, Geert Uytterhoeven

When using overlays, a target-path property pointing to the root node is
quite common.  However, "dtc -O dts" prints it as a byte array:

    target-path = [2f 00];

instead of a string:

    target-path = "/";

For guess_value_type() to consider a value to be a string, it must
contain less nul bytes than non-nul bytes, thus ruling out strings
containing only a single character.  Allow printing such strings by
relaxing the condition slightly.

Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
---
Alternatively, guess_value_type() could check explicitly for "/",
reducing the number of false positives.

However, there seem to be plenty of other uses of one-character strings
in DTS files.  The most common one is 'type = "a"' for HDMI connectors.
---
 treesource.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/treesource.c b/treesource.c
index 2acb920d77752410..061ba8c9c5e83265 100644
--- a/treesource.c
+++ b/treesource.c
@@ -183,7 +183,7 @@ static enum markertype guess_value_type(struct property *prop)
 			nnotcelllbl++;
 	}
 
-	if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul < (len-nnul))
+	if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul <= (len-nnul))
 	    && (nnotstringlbl == 0)) {
 		return TYPE_STRING;
 	} else if (((len % sizeof(cell_t)) == 0) && (nnotcelllbl == 0)) {
-- 
2.17.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] dtc: Consider one-character strings as strings
       [not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
@ 2020-06-25  1:42   ` David Gibson
  0 siblings, 0 replies; 2+ messages in thread
From: David Gibson @ 2020-06-25  1:42 UTC (permalink / raw)
  To: Geert Uytterhoeven
  Cc: Jon Loeliger, devicetree-compiler-u79uwXL29TY76Z2rM5mHXA,
	devicetree-u79uwXL29TY76Z2rM5mHXA

[-- Attachment #1: Type: text/plain, Size: 1779 bytes --]

On Tue, Jun 23, 2020 at 11:43:43AM +0200, Geert Uytterhoeven wrote:
> When using overlays, a target-path property pointing to the root node is
> quite common.  However, "dtc -O dts" prints it as a byte array:
> 
>     target-path = [2f 00];
> 
> instead of a string:
> 
>     target-path = "/";
> 
> For guess_value_type() to consider a value to be a string, it must
> contain less nul bytes than non-nul bytes, thus ruling out strings
> containing only a single character.  Allow printing such strings by
> relaxing the condition slightly.
> 
> Signed-off-by: Geert Uytterhoeven <geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>

Makes sense.  Applied, thanks.

> ---
> Alternatively, guess_value_type() could check explicitly for "/",
> reducing the number of false positives.
> 
> However, there seem to be plenty of other uses of one-character strings
> in DTS files.  The most common one is 'type = "a"' for HDMI connectors.
> ---
>  treesource.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/treesource.c b/treesource.c
> index 2acb920d77752410..061ba8c9c5e83265 100644
> --- a/treesource.c
> +++ b/treesource.c
> @@ -183,7 +183,7 @@ static enum markertype guess_value_type(struct property *prop)
>  			nnotcelllbl++;
>  	}
>  
> -	if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul < (len-nnul))
> +	if ((p[len-1] == '\0') && (nnotstring == 0) && (nnul <= (len-nnul))
>  	    && (nnotstringlbl == 0)) {
>  		return TYPE_STRING;
>  	} else if (((len % sizeof(cell_t)) == 0) && (nnotcelllbl == 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 #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2020-06-25  1:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2020-06-23  9:43 [PATCH] dtc: Consider one-character strings as strings Geert Uytterhoeven
     [not found] ` <20200623094343.26010-1-geert+renesas-gXvu3+zWzMSzQB+pC5nmwQ@public.gmane.org>
2020-06-25  1:42   ` David Gibson

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).