diff options
author | Karicheri, Muralidharan <m-karicheri2@ti.com> | 2015-09-23 17:37:09 (GMT) |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2015-09-23 21:37:37 (GMT) |
commit | 915c5857874fc211874de1363e88f902e581e6eb (patch) | |
tree | 24fde088492a71703e6ce56da55409d2afe45ef6 /drivers | |
parent | e558b1fbf5f43da83f91a31e595a6d65e663b100 (diff) | |
download | linux-915c5857874fc211874de1363e88f902e581e6eb.tar.xz |
net: netcp: check for interface handle in netcp_module_probe()
Currently netcp_module_probe() doesn't check the return value of
of_parse_phandle() that points to the interface data for the
module and then pass the node ptr to the module which is incorrect.
Check for return value and free the intf_modpriv if there is error.
Signed-off-by: Murali Karicheri <m-karicheri2@ti.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/net/ethernet/ti/netcp_core.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/drivers/net/ethernet/ti/netcp_core.c b/drivers/net/ethernet/ti/netcp_core.c index 97e2629..d39dce3 100644 --- a/drivers/net/ethernet/ti/netcp_core.c +++ b/drivers/net/ethernet/ti/netcp_core.c @@ -299,6 +299,11 @@ static int netcp_module_probe(struct netcp_device *netcp_device, interface = of_parse_phandle(netcp_intf->node_interface, module->name, 0); + if (!interface) { + devm_kfree(dev, intf_modpriv); + continue; + } + intf_modpriv->netcp_priv = netcp_intf; intf_modpriv->netcp_module = module; list_add_tail(&intf_modpriv->intf_list, |