From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ken MacLeod Date: Thu, 10 Sep 2009 16:41:15 -0500 Subject: [U-Boot] [PATCH] cmd_fdt.c: fix parse of byte streams and strings Message-ID: List-Id: MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: u-boot@lists.denx.de Commit 4abd844d8e extended the fdt command parser to handle property strings which are split across multiple arguments but it was broken for byte streams and strings. This patch fixes those. Signed-off-by: Ken MacLeod --- common/cmd_fdt.c | 11 +++++++++-- 1 files changed, 9 insertions(+), 2 deletions(-) diff --git a/common/cmd_fdt.c b/common/cmd_fdt.c index 8683772..f0a8f0e 100644 --- a/common/cmd_fdt.c +++ b/common/cmd_fdt.c @@ -580,7 +580,7 @@ static int fdt_parse_prop(char **newval, int count, char *data, int *len) *len = *len + 1; while (*newp == ' ') newp++; - if (*newp != '\0') + if (*newp == '\0') newp = newval[++stridx]; } if (*newp != ']') { @@ -593,10 +593,17 @@ static int fdt_parse_prop(char **newval, int count, char *data, int *len) * convenience (including the terminating '\0'). */ while (stridx < count) { - *len = strlen(newp) + 1; + size_t length = strlen(newp); strcpy(data, newp); + data += length; + *len += length; newp = newval[++stridx]; + if (stridx < count) { + *data++ = ' '; + *len += 1; + } } + *len += 1; } return 0; } -- 1.5.4.7