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 <k...@bitsko.slc.ut.us>
---
 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

_______________________________________________
U-Boot mailing list
U-Boot@lists.denx.de
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to