diff --git a/drivers/of/overlay.c b/drivers/of/overlay.c
index 50bbe0edf538022c2f9f2f13546499fe4addf643..43a77d7200087108f30d79be1a888800eaf9723e 100644
--- a/drivers/of/overlay.c
+++ b/drivers/of/overlay.c
@@ -796,6 +796,7 @@ static int init_overlay_changeset(struct overlay_changeset *ovcs,
 		if (!fragment->target) {
 			of_node_put(fragment->overlay);
 			ret = -EINVAL;
+			of_node_put(node);
 			goto err_free_fragments;
 		}