mirror of
https://github.com/dgibson/dtc.git
synced 2025-10-13 16:27:39 -04:00
Fix dts output with a REF_PATH marker
Commit8c59a97ce0
("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:8c59a97ce0
("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>
This commit is contained in:
parent
e45198c983
commit
522d81d572
3 changed files with 11 additions and 1 deletions
|
@ -64,6 +64,10 @@ static bool isstring(char c)
|
|||
static void write_propval_string(FILE *f, const char *s, size_t len)
|
||||
{
|
||||
const char *end = s + len - 1;
|
||||
|
||||
if (!len)
|
||||
return;
|
||||
|
||||
assert(*end == '\0');
|
||||
|
||||
fprintf(f, "\"");
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue