From a8343d5f1a0da3c099230d8199c82b652326f01d Mon Sep 17 00:00:00 2001 From: Nicholas Piggin Date: Wed, 8 May 2019 16:17:48 +1000 Subject: [PATCH] fdt: check more errors This catches a few more error cases in fdt building. Signed-off-by: Nicholas Piggin Signed-off-by: Stewart Smith --- core/fdt.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/fdt.c b/core/fdt.c index ce4f66380a63..da5cc58d997f 100644 --- a/core/fdt.c +++ b/core/fdt.c @@ -167,16 +167,20 @@ static int __create_dtb(void *fdt, size_t len, const struct dt_node *root, bool exclusive) { - fdt_create(fdt, len); + save_err(fdt_create(fdt, len)); + if (fdt_error) + goto err; + if (root == dt_root && !exclusive) create_dtb_reservemap(fdt, root); else - fdt_finish_reservemap(fdt); + save_err(fdt_finish_reservemap(fdt)); flatten_dt_node(fdt, root, exclusive); save_err(fdt_finish(fdt)); if (fdt_error) { +err: prerror("dtb: error %s\n", fdt_strerror(fdt_error)); return fdt_error; }