diff options
author | Rob Herring <robh@kernel.org> | 2018-09-26 14:27:08 -0500 |
---|---|---|
committer | David Gibson <david@gibson.dropbear.id.au> | 2018-09-27 10:58:35 +1000 |
commit | 522d81d572f2f8ae683c39089df64f5c74205451 (patch) | |
tree | fbcb1e3cd4cb625e415730cfcb2495784db09d85 /tests | |
parent | e45198c9835901efc4763bcafa3cf50b5bdcb6b5 (diff) | |
download | dtc-522d81d572f2f8ae683c39089df64f5c74205451.zip dtc-522d81d572f2f8ae683c39089df64f5c74205451.tar.gz dtc-522d81d572f2f8ae683c39089df64f5c74205451.tar.bz2 |
Fix dts output with a REF_PATH marker
Commit 8c59a97ce096 ("Fix missing labels when emitting dts format")
fixed label output, but broke output when there is a REF_PATH marker.
The problem is a REF_PATH marker causes a zero length string to be
emitted. The write_propval_string() function requires a length of at
least 1 (including the terminating '\0'), but that was not being
checked.
For the integer output, a length of 0 is valid as it is possible to have
labels inside the starting '<':
int-prop = < start: 0x1234>;
REF_PHANDLE is another marker that we don't explicitly handle, but it
doesn't cause a problem as it is fundamentally just an int.
Fixes: 8c59a97ce096 ("Fix missing labels when emitting dts format")
Reported-by: Kumar Gala <kumar.gala@linaro.org>
Cc: Grant Likely <grant.likely@arm.com>
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/path-references.dts | 2 | ||||
-rwxr-xr-x | tests/run_tests.sh | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/tests/path-references.dts b/tests/path-references.dts index 8c66d80..1fb7d70 100644 --- a/tests/path-references.dts +++ b/tests/path-references.dts @@ -16,7 +16,7 @@ foobar { n3: baz { ref = &{/foo/baz}; - lref = &n4; + lref = start: &n4 end:; }; }; foo { diff --git a/tests/run_tests.sh b/tests/run_tests.sh index e3e64e8..e7ee42b 100755 --- a/tests/run_tests.sh +++ b/tests/run_tests.sh @@ -572,6 +572,12 @@ dtc_tests () { run_dtc_test -I dts -O dts $tree.test.dts run_wrap_test cmp $tree $tree.test.dts done + for tree in path-references; do + run_dtc_test -I dts -O dtb -o $tree.test.dtb $tree.dts + run_dtc_test -I dts -O dts -o $tree.test.dts $tree.dts + run_dtc_test -I dts -O dtb -o $tree.test.dts.test.dtb $tree.test.dts + run_test dtbs_equal_ordered $tree.test.dtb $tree.test.dts.test.dtb + done # Check -Oyaml output if pkg-config --exists yaml-0.1; then |