Commit 201b3fe5 authored by Suraj Jitindar Singh's avatar Suraj Jitindar Singh Committed by Michael Ellerman

drivers/of: Add check for null property in of_remove_property()

The validity of the property input argument to of_remove_property() is
never checked within the function and thus it is possible to pass a null
value. It happens that this will be picked up in __of_remove_property()
as no matching property of the device node will be found and thus an
error will be returned, however once again there is no explicit check
for a null value. By the time this is detected 2 locks have already been
acquired which is completely unnecessary if the property to remove is
null.

Add an explicit check in the function of_remove_property() for a null
property value and return -ENODEV in this case, this is consistent with
what the previous return value would have been when the null value was
not detected and passed to __of_remove_property().

By moving an explicit check for the property paramenter into the
of_remove_property() function, this will remove the need to perform this
check in calling code before invocation of the of_remove_property()
function.
Signed-off-by: default avatarSuraj Jitindar Singh <sjitindarsingh@gmail.com>
Acked-by: default avatarRob Herring <robh@kernel.org>
Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
parent b2ed0596
...@@ -1777,6 +1777,9 @@ int of_remove_property(struct device_node *np, struct property *prop) ...@@ -1777,6 +1777,9 @@ int of_remove_property(struct device_node *np, struct property *prop)
unsigned long flags; unsigned long flags;
int rc; int rc;
if (!prop)
return -ENODEV;
mutex_lock(&of_mutex); mutex_lock(&of_mutex);
raw_spin_lock_irqsave(&devtree_lock, flags); raw_spin_lock_irqsave(&devtree_lock, flags);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment