The function boston_fdt_filter() can return NULL on errors (in which
case it will print an error message). When we call this from the
non-FIT-image codepath, we aren't checking the return value, so we
will plough on with a NULL pointer, and segfault in fdt_totalsize().
Check for errors here.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
hw/mips/boston.c | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/hw/mips/boston.c b/hw/mips/boston.c
index 364c328032a..f0e9a2461a0 100644
--- a/hw/mips/boston.c
+++ b/hw/mips/boston.c
@@ -810,6 +810,10 @@ static void boston_mach_init(MachineState *machine)
dtb_load_data = boston_fdt_filter(s, dtb_file_data,
NULL, &dtb_vaddr);
+ if (!dtb_load_data) {
+ /* boston_fdt_filter() already printed the error for us */
+ exit(1);
+ }
/* Calculate real fdt size after filter */
dt_size = fdt_totalsize(dtb_load_data);
--
2.34.1