[PATCH] ARM: layerscape: ppa: Fix use after free

Sascha Hauer s.hauer at pengutronix.de
Wed Nov 11 09:10:12 EST 2020


In of_psci_do_fixup() we want to delete the one job-ring device node
which is used by the PPA secure firmware. When we have deleted the node
we may not continue the for_each_compatible_node_from() loop, because
that would derefence the just deleted node.
We only want to delete a single node, so we do not need to continue the
loop once we've found the node, so we can fix the issue by breaking out
of the loop.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 arch/arm/mach-layerscape/ppa.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/arch/arm/mach-layerscape/ppa.c b/arch/arm/mach-layerscape/ppa.c
index 6ab7659be7..c34651f39f 100644
--- a/arch/arm/mach-layerscape/ppa.c
+++ b/arch/arm/mach-layerscape/ppa.c
@@ -43,6 +43,7 @@ static int of_psci_do_fixup(struct device_node *root, void *unused)
 			continue;
 
 		of_delete_node(np);
+		break;
 	}
 
 	return of_psci_fixup(root, psci_version);
-- 
2.20.1




More information about the barebox mailing list