aboutsummaryrefslogtreecommitdiff
path: root/common/board_f.c
diff options
context:
space:
mode:
authorOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>2020-06-19 11:22:18 +0300
committerTom Rini <trini@konsulko.com>2020-07-07 09:45:07 -0400
commit53007fc1eb892cd67af97c545eb3461020cc3885 (patch)
treeed50b506eb38e727a905aed6aebc7098c0dd5242 /common/board_f.c
parent23da3c682a84a2ad67a67287979dd4f5259ff607 (diff)
downloadu-boot-53007fc1eb892cd67af97c545eb3461020cc3885.zip
u-boot-53007fc1eb892cd67af97c545eb3461020cc3885.tar.gz
u-boot-53007fc1eb892cd67af97c545eb3461020cc3885.tar.bz2
common/board_f: Respect original FDT size while relocating
While relocating FDT we reserve some memory for the new FDT and set the size of the FDT with that respect. But FDT may be placed at the end of the RAM leading to memory access beyond it. Fix this by copying exact FDT size bytes, not the reserved size. Signed-off-by: Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'common/board_f.c')
-rw-r--r--common/board_f.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/common/board_f.c b/common/board_f.c
index dcad551..b610365 100644
--- a/common/board_f.c
+++ b/common/board_f.c
@@ -670,7 +670,7 @@ static int reloc_fdt(void)
if (gd->flags & GD_FLG_SKIP_RELOC)
return 0;
if (gd->new_fdt) {
- memcpy(gd->new_fdt, gd->fdt_blob, gd->fdt_size);
+ memcpy(gd->new_fdt, gd->fdt_blob, fdt_totalsize(gd->fdt_blob));
gd->fdt_blob = gd->new_fdt;
}
#endif