aboutsummaryrefslogtreecommitdiff
path: root/usr.bin/dtc
diff options
context:
space:
mode:
authorDavid Chisnall <theraven@FreeBSD.org>2013-12-12 08:55:24 +0000
committerDavid Chisnall <theraven@FreeBSD.org>2013-12-12 08:55:24 +0000
commite00bea9e62db034ada0bb2e2ab333ee206a07693 (patch)
tree0b4b608f8e69a388d979d1fab6434ea812b58e09 /usr.bin/dtc
parentae893e1ad9359169123469adb1b840f80a5728f1 (diff)
Notes
Diffstat (limited to 'usr.bin/dtc')
-rw-r--r--usr.bin/dtc/fdt.cc9
1 files changed, 7 insertions, 2 deletions
diff --git a/usr.bin/dtc/fdt.cc b/usr.bin/dtc/fdt.cc
index b2405efab52e..0599d5501a54 100644
--- a/usr.bin/dtc/fdt.cc
+++ b/usr.bin/dtc/fdt.cc
@@ -137,7 +137,7 @@ property_value::resolve_type()
break;
}
}
- if (is_all_printable && (bytes > nuls))
+ if ((is_all_printable && (bytes > nuls)) || bytes == 0)
{
type = STRING;
if (nuls > 0)
@@ -204,7 +204,7 @@ property_value::write_as_bytes(FILE *file)
putc('[', file);
for (byte_buffer::iterator i=byte_data.begin(), e=byte_data.end(); i!=e ; i++)
{
- fprintf(file, "%hhx", *i);
+ fprintf(file, "%02hhx", *i);
if (i+1 != e)
{
putc(' ', file);
@@ -367,6 +367,11 @@ property::property(input_buffer &structs, input_buffer &strings)
return;
}
key = string(name_buffer);
+
+ // If we're empty, do not push anything as value.
+ if (!length)
+ return;
+
// Read the value
uint8_t byte;
property_value v;