mirror of
https://github.com/dgibson/dtc.git
synced 2025-12-07 05:35:07 -05:00
At present fdt_create() will succeed if there is exactly enough space to put in the fdt header. However, it sets the off_mem_rsvmap field, a few bytes past that in order to align the memory reservation block. Having block pointers pointing past the end of the fdt is pretty ugly, even if it is just a transient state. Worse, if fdt_resize() is called at exactly the wrong time, it can end up accessing data past the blob's allocated space because of this. So, correct fdt_create() to ensure that there is sufficient space for the alignment padding as well as the plain header. For paranoia, also add a check in fdt_resize() to make sure we don't copy data from outside the blob's bounds. Signed-off-by: David Gibson <david@gibson.dropbear.id.au> |
||
|---|---|---|
| .. | ||
| fdt.c | ||
| fdt.h | ||
| fdt_addresses.c | ||
| fdt_empty_tree.c | ||
| fdt_overlay.c | ||
| fdt_ro.c | ||
| fdt_rw.c | ||
| fdt_strerror.c | ||
| fdt_sw.c | ||
| fdt_wip.c | ||
| libfdt.h | ||
| libfdt_env.h | ||
| libfdt_internal.h | ||
| Makefile.libfdt | ||
| TODO | ||
| version.lds | ||