aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile2
-rw-r--r--dtc.c2
-rw-r--r--dtc.h2
-rw-r--r--flattree.c9
-rw-r--r--tests/truncated_property.c3
5 files changed, 9 insertions, 9 deletions
diff --git a/Makefile b/Makefile
index 5766012..27e1499 100644
--- a/Makefile
+++ b/Makefile
@@ -45,7 +45,7 @@ endef
CPPFLAGS = -I libfdt
-CFLAGS = -Wall -g
+CFLAGS = -Wall -g -Os
LDFLAGS = -Llibfdt
BISON = bison
diff --git a/dtc.c b/dtc.c
index ecd9fe5..8f5fe2f 100644
--- a/dtc.c
+++ b/dtc.c
@@ -71,7 +71,7 @@ void fill_fullpaths(struct node *tree, char *prefix)
fill_fullpaths(child, tree->fullpath);
}
-static void usage(void)
+static void __attribute__ ((noreturn)) usage(void)
{
fprintf(stderr, "Usage:\n");
fprintf(stderr, "\tdtc [options] <input file>\n");
diff --git a/dtc.h b/dtc.h
index 0a1f960..458403a 100644
--- a/dtc.h
+++ b/dtc.h
@@ -43,7 +43,7 @@ extern int quiet; /* Level of quietness */
extern int reservenum; /* Number of memory reservation slots */
extern int minsize; /* Minimum blob size */
-static inline void die(char * str, ...)
+static inline void __attribute__((noreturn)) die(char * str, ...)
{
va_list ap;
diff --git a/flattree.c b/flattree.c
index 5b15e9c..e857b08 100644
--- a/flattree.c
+++ b/flattree.c
@@ -909,6 +909,7 @@ struct boot_info *dt_from_blob(FILE *f)
fprintf(stderr, "\tboot_cpuid_phys:\t0x%x\n",
be32_to_cpu(bph->boot_cpuid_phys));
+ size_str = -1;
if (version >= 3) {
size_str = be32_to_cpu(bph->size_dt_strings);
fprintf(stderr, "\tsize_dt_strings:\t%d\n", size_str);
@@ -932,10 +933,10 @@ struct boot_info *dt_from_blob(FILE *f)
inbuf_init(&memresvbuf,
blob + off_mem_rsvmap, blob + totalsize);
inbuf_init(&dtbuf, blob + off_dt, blob + totalsize);
- inbuf_init(&strbuf, blob + off_str, blob + totalsize);
-
- if (version >= 3)
- strbuf.limit = strbuf.base + size_str;
+ if (size_str >= 0)
+ inbuf_init(&strbuf, blob + off_str, blob + off_str + size_str);
+ else
+ inbuf_init(&strbuf, blob + off_str, blob + totalsize);
reservelist = flat_read_mem_reserve(&memresvbuf);
diff --git a/tests/truncated_property.c b/tests/truncated_property.c
index 5642d8d..56daa22 100644
--- a/tests/truncated_property.c
+++ b/tests/truncated_property.c
@@ -33,7 +33,6 @@ int main(int argc, char *argv[])
{
void *fdt = &_truncated_property;
const void *prop;
- int err;
int len;
test_init(argc, argv);
@@ -43,7 +42,7 @@ int main(int argc, char *argv[])
FAIL("fdt_getprop() succeeded on truncated property");
if (len != -FDT_ERR_BADSTRUCTURE)
FAIL("fdt_getprop() failed with \"%s\" instead of \"%s\"",
- fdt_strerror(err), fdt_strerror(-FDT_ERR_BADSTRUCTURE));
+ fdt_strerror(len), fdt_strerror(-FDT_ERR_BADSTRUCTURE));
PASS();
}