mirror of
https://github.com/dgibson/dtc.git
synced 2025-12-07 05:35:07 -05:00
libfdt: Correctly handle versions > 17
If future dtb version > 17 are defined, that are still backwards compatible with v16, libfdt will of course be able to read and understand them. However, when modifying such a tree, it can't guarantee that it won't clobber additional structure from the new version which it doesn't know about. Therefore, before making modifications to a tree of version >17, we must change it's version to be exactly 17. Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
This commit is contained in:
parent
7e14259791
commit
4a5df5c026
1 changed files with 4 additions and 1 deletions
|
|
@ -61,7 +61,7 @@ static int rw_check_header(void *fdt)
|
|||
|
||||
if ((err = fdt_check_header(fdt)))
|
||||
return err;
|
||||
if (fdt_version(fdt) < 0x11)
|
||||
if (fdt_version(fdt) < 17)
|
||||
return -FDT_ERR_BADVERSION;
|
||||
if (fdt_off_mem_rsvmap(fdt) < ALIGN(sizeof(struct fdt_header), 8))
|
||||
return -FDT_ERR_BADLAYOUT;
|
||||
|
|
@ -74,6 +74,9 @@ static int rw_check_header(void *fdt)
|
|||
if (fdt_totalsize(fdt) <
|
||||
(fdt_off_dt_strings(fdt) + fdt_size_dt_strings(fdt)))
|
||||
return -FDT_ERR_BADLAYOUT;
|
||||
if (fdt_version(fdt) > 17)
|
||||
fdt_set_version(fdt, 17);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue