]> git.dujemihanovic.xyz Git - u-boot.git/commitdiff
common/board_f: Respect original FDT size while relocating
authorOleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
Fri, 19 Jun 2020 08:22:18 +0000 (11:22 +0300)
committerTom Rini <trini@konsulko.com>
Tue, 7 Jul 2020 13:45:07 +0000 (09:45 -0400)
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>
common/board_f.c

index dcad551ae434e64bd28a24587c0da6bddbab649d..b61036577a53d12ee6fbfbe5e93fe90c93d7dda4 100644 (file)
@@ -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