From cabbaa972cddb193dbe170f3797825a5d4ca66fa Mon Sep 17 00:00:00 2001 From: Maxime Ripard Date: Thu, 6 Oct 2016 13:39:57 +0200 Subject: [PATCH] libfdt: overlay: Report a bad overlay for mismatching local fixups The __local_fixups__ node as a structure that mimics the structure of the main overlay part. This means that if we have a child node somewhere in the local fixups sub-tree and if that node is not present in the main tree, the overlay is poorly formatted, and we should report it as such. Signed-off-by: Maxime Ripard Signed-off-by: David Gibson --- libfdt/fdt_overlay.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libfdt/fdt_overlay.c b/libfdt/fdt_overlay.c index 322e7ad..2f306e4 100644 --- a/libfdt/fdt_overlay.c +++ b/libfdt/fdt_overlay.c @@ -272,6 +272,8 @@ static int overlay_update_local_node_references(void *fdto, tree_child = fdt_subnode_offset(fdto, tree_node, fixup_child_name); + if (ret == -FDT_ERR_NOTFOUND) + return -FDT_ERR_BADOVERLAY; if (tree_child < 0) return tree_child;