2013-03-21 12:20:23

by Lothar Waßmann

[permalink] [raw]
Subject: [BUGFIX PATCH] net: ethernet: cpsw: fix erroneous condition in error check

The error check in cpsw_probe_dt() has an '&&' where an '||' is
meant to be. This causes a NULL pointer dereference when incomplet DT
data is passed to the driver ('phy_id' property for cpsw_emac1
missing).


Signed-off-by: Lothar Waßmann <[email protected]>
---
drivers/net/ethernet/ti/cpsw.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/drivers/net/ethernet/ti/cpsw.c b/drivers/net/ethernet/ti/cpsw.c
index 5ceaa4c3..7aebc0c 100644
--- a/drivers/net/ethernet/ti/cpsw.c
+++ b/drivers/net/ethernet/ti/cpsw.c
@@ -1504,7 +1504,7 @@ static int cpsw_probe_dt(struct cpsw_platform_data *data,
struct platform_device *mdio;

parp = of_get_property(slave_node, "phy_id", &lenp);
- if ((parp == NULL) && (lenp != (sizeof(void *) * 2))) {
+ if ((parp == NULL) || (lenp != (sizeof(void *) * 2))) {
pr_err("Missing slave[%d] phy_id property\n", i);
ret = -EINVAL;
goto error_ret;
--
1.7.2.5


2013-03-21 12:35:16

by Mugunthan V N

[permalink] [raw]
Subject: Re: [BUGFIX PATCH] net: ethernet: cpsw: fix erroneous condition in error check

On 3/21/2013 5:50 PM, Lothar Waßmann wrote:
> The error check in cpsw_probe_dt() has an '&&' where an '||' is
> meant to be. This causes a NULL pointer dereference when incomplet DT
> data is passed to the driver ('phy_id' property for cpsw_emac1
> missing).
>
>
> Signed-off-by: Lothar Waßmann<[email protected]>
Acked-by: Mugunthan V N <[email protected]>

Regards
Mugunthan V N

2013-03-21 15:58:01

by David Miller

[permalink] [raw]
Subject: Re: [BUGFIX PATCH] net: ethernet: cpsw: fix erroneous condition in error check

From: Mugunthan V N <[email protected]>
Date: Thu, 21 Mar 2013 18:02:21 +0530

> On 3/21/2013 5:50 PM, Lothar Wa?mann wrote:
>> The error check in cpsw_probe_dt() has an '&&' where an '||' is
>> meant to be. This causes a NULL pointer dereference when incomplet DT
>> data is passed to the driver ('phy_id' property for cpsw_emac1
>> missing).
>>
>>
>> Signed-off-by: Lothar Wa?mann<[email protected]>
> Acked-by: Mugunthan V N <[email protected]>

Applied, thanks.