hw/riscv/boot: Check the error of fdt_pack()
Coverity reports that we don't check the error result of fdt_pack(), so let's save the result and assert that it is 0. Fixes: Coverity CID 1458136 Signed-off-by: Alistair Francis <alistair.francis@wdc.com> Reviewed-by: Bin Meng <bmeng.cn@gmail.com> Message-id: 07325315b49d5555269f76094e4bc5296e0643b9.1626303527.git.alistair.francis@wdc.com
This commit is contained in:
parent
bb7e0cde3c
commit
b3d8aa2069
|
@ -182,7 +182,7 @@ uint32_t riscv_load_fdt(hwaddr dram_base, uint64_t mem_size, void *fdt)
|
||||||
{
|
{
|
||||||
uint32_t temp, fdt_addr;
|
uint32_t temp, fdt_addr;
|
||||||
hwaddr dram_end = dram_base + mem_size;
|
hwaddr dram_end = dram_base + mem_size;
|
||||||
int fdtsize = fdt_totalsize(fdt);
|
int ret, fdtsize = fdt_totalsize(fdt);
|
||||||
|
|
||||||
if (fdtsize <= 0) {
|
if (fdtsize <= 0) {
|
||||||
error_report("invalid device-tree");
|
error_report("invalid device-tree");
|
||||||
|
@ -198,7 +198,9 @@ uint32_t riscv_load_fdt(hwaddr dram_base, uint64_t mem_size, void *fdt)
|
||||||
temp = MIN(dram_end, 3072 * MiB);
|
temp = MIN(dram_end, 3072 * MiB);
|
||||||
fdt_addr = QEMU_ALIGN_DOWN(temp - fdtsize, 16 * MiB);
|
fdt_addr = QEMU_ALIGN_DOWN(temp - fdtsize, 16 * MiB);
|
||||||
|
|
||||||
fdt_pack(fdt);
|
ret = fdt_pack(fdt);
|
||||||
|
/* Should only fail if we've built a corrupted tree */
|
||||||
|
g_assert(ret == 0);
|
||||||
/* copy in the device tree */
|
/* copy in the device tree */
|
||||||
qemu_fdt_dumpdtb(fdt, fdtsize);
|
qemu_fdt_dumpdtb(fdt, fdtsize);
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue