Commit 80af3745 authored by Dan Carpenter's avatar Dan Carpenter Committed by Rob Herring (Arm)
Browse files

of: dynamic: Fix use after free in of_changeset_add_prop_helper()



If the of_changeset_add_property() function call fails, then this code
frees "new_pp" and then dereference it on the next line.  Return the
error code directly instead.

Fixes: c81f6ce1 ("of: dynamic: Fix memleak when of_pci_add_properties() failed")
Signed-off-by: default avatarDan Carpenter <dan.carpenter@linaro.org>
Link: https://lore.kernel.org/r/aKgljjhnpa4lVpdx@stanley.mountain


Signed-off-by: default avatarRob Herring (Arm) <robh@kernel.org>
parent ac29e448
Loading
Loading
Loading
Loading
+4 −2
Original line number Diff line number Diff line
@@ -935,13 +935,15 @@ static int of_changeset_add_prop_helper(struct of_changeset *ocs,
		return -ENOMEM;

	ret = of_changeset_add_property(ocs, np, new_pp);
	if (ret)
	if (ret) {
		__of_prop_free(new_pp);
		return ret;
	}

	new_pp->next = np->deadprops;
	np->deadprops = new_pp;

	return ret;
	return 0;
}

/**