| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: "Gustavo A. R. Silva" <garsilva@embeddedor.com> |
| Date: Tue, 30 May 2017 17:38:43 -0500 |
| Subject: net: freescale: fix potential null pointer dereference |
| |
| From: "Gustavo A. R. Silva" <garsilva@embeddedor.com> |
| |
| |
| [ Upstream commit 06d2d6431bc8d41ef5ffd8bd4b52cea9f72aed22 ] |
| |
| Add NULL check before dereferencing pointer _id_ in order to avoid |
| a potential NULL pointer dereference. |
| |
| Addresses-Coverity-ID: 1397995 |
| Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/net/ethernet/freescale/fsl_pq_mdio.c | 9 ++++++++- |
| 1 file changed, 8 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/net/ethernet/freescale/fsl_pq_mdio.c |
| +++ b/drivers/net/ethernet/freescale/fsl_pq_mdio.c |
| @@ -381,7 +381,7 @@ static int fsl_pq_mdio_probe(struct plat |
| { |
| const struct of_device_id *id = |
| of_match_device(fsl_pq_mdio_match, &pdev->dev); |
| - const struct fsl_pq_mdio_data *data = id->data; |
| + const struct fsl_pq_mdio_data *data; |
| struct device_node *np = pdev->dev.of_node; |
| struct resource res; |
| struct device_node *tbi; |
| @@ -389,6 +389,13 @@ static int fsl_pq_mdio_probe(struct plat |
| struct mii_bus *new_bus; |
| int err; |
| |
| + if (!id) { |
| + dev_err(&pdev->dev, "Failed to match device\n"); |
| + return -ENODEV; |
| + } |
| + |
| + data = id->data; |
| + |
| dev_dbg(&pdev->dev, "found %s compatible node\n", id->compatible); |
| |
| new_bus = mdiobus_alloc_size(sizeof(*priv)); |