2020-10-02 16:56:12

by Colin King

[permalink] [raw]
Subject: [PATCH][next] net: phy: dp83869: fix unsigned comparisons against less than zero values

From: Colin Ian King <[email protected]>

Currently the comparisons of u16 integers value and sopass_val with
less than zero for error checking is always false because the values
are unsigned. Fix this by making these variables int. This does not
affect the shift and mask operations performed on these variables

Addresses-Coverity: ("Unsigned compared against zero")
Fixes: 49fc23018ec6 ("net: phy: dp83869: support Wake on LAN")
Signed-off-by: Colin Ian King <[email protected]>
---
drivers/net/phy/dp83869.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
index 0aee5f645b71..cf6dec7b7d8e 100644
--- a/drivers/net/phy/dp83869.c
+++ b/drivers/net/phy/dp83869.c
@@ -305,7 +305,7 @@ static int dp83869_set_wol(struct phy_device *phydev,
static void dp83869_get_wol(struct phy_device *phydev,
struct ethtool_wolinfo *wol)
{
- u16 value, sopass_val;
+ int value, sopass_val;

wol->supported = (WAKE_UCAST | WAKE_BCAST | WAKE_MAGIC |
WAKE_MAGICSECURE);
--
2.27.0


2020-10-02 17:30:58

by Dan Murphy

[permalink] [raw]
Subject: Re: [PATCH][next] net: phy: dp83869: fix unsigned comparisons against less than zero values

Colin

On 10/2/20 11:54 AM, Colin King wrote:
> From: Colin Ian King <[email protected]>
>
> Currently the comparisons of u16 integers value and sopass_val with
> less than zero for error checking is always false because the values
> are unsigned. Fix this by making these variables int. This does not
> affect the shift and mask operations performed on these variables
>
> Addresses-Coverity: ("Unsigned compared against zero")
> Fixes: 49fc23018ec6 ("net: phy: dp83869: support Wake on LAN")
> Signed-off-by: Colin Ian King <[email protected]>
> ---
> drivers/net/phy/dp83869.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
> index 0aee5f645b71..cf6dec7b7d8e 100644
> --- a/drivers/net/phy/dp83869.c
> +++ b/drivers/net/phy/dp83869.c
> @@ -305,7 +305,7 @@ static int dp83869_set_wol(struct phy_device *phydev,
> static void dp83869_get_wol(struct phy_device *phydev,
> struct ethtool_wolinfo *wol)
> {
> - u16 value, sopass_val;
> + int value, sopass_val;
>
> wol->supported = (WAKE_UCAST | WAKE_BCAST | WAKE_MAGIC |
> WAKE_MAGICSECURE);

Wonder why this was not reported before as the previous comparison issue
reported by zero day.

Acked-by: Dan Murphy <[email protected]>

2020-10-02 17:42:54

by Andrew Lunn

[permalink] [raw]
Subject: Re: [PATCH][next] net: phy: dp83869: fix unsigned comparisons against less than zero values

On Fri, Oct 02, 2020 at 12:26:49PM -0500, Dan Murphy wrote:
> Colin
>
> On 10/2/20 11:54 AM, Colin King wrote:
> > From: Colin Ian King <[email protected]>
> >
> > Currently the comparisons of u16 integers value and sopass_val with
> > less than zero for error checking is always false because the values
> > are unsigned. Fix this by making these variables int. This does not
> > affect the shift and mask operations performed on these variables
> >
> > Addresses-Coverity: ("Unsigned compared against zero")
> > Fixes: 49fc23018ec6 ("net: phy: dp83869: support Wake on LAN")
> > Signed-off-by: Colin Ian King <[email protected]>
> > ---
> > drivers/net/phy/dp83869.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
> > index 0aee5f645b71..cf6dec7b7d8e 100644
> > --- a/drivers/net/phy/dp83869.c
> > +++ b/drivers/net/phy/dp83869.c
> > @@ -305,7 +305,7 @@ static int dp83869_set_wol(struct phy_device *phydev,
> > static void dp83869_get_wol(struct phy_device *phydev,
> > struct ethtool_wolinfo *wol)
> > {
> > - u16 value, sopass_val;
> > + int value, sopass_val;
> > wol->supported = (WAKE_UCAST | WAKE_BCAST | WAKE_MAGIC |
> > WAKE_MAGICSECURE);
>
> Wonder why this was not reported before as the previous comparison issue
> reported by zero day.

I think it needs W=1

Andrew

2020-10-04 00:10:33

by David Miller

[permalink] [raw]
Subject: Re: [PATCH][next] net: phy: dp83869: fix unsigned comparisons against less than zero values

From: Colin King <[email protected]>
Date: Fri, 2 Oct 2020 17:54:22 +0100

> From: Colin Ian King <[email protected]>
>
> Currently the comparisons of u16 integers value and sopass_val with
> less than zero for error checking is always false because the values
> are unsigned. Fix this by making these variables int. This does not
> affect the shift and mask operations performed on these variables
>
> Addresses-Coverity: ("Unsigned compared against zero")
> Fixes: 49fc23018ec6 ("net: phy: dp83869: support Wake on LAN")
> Signed-off-by: Colin Ian King <[email protected]>

Applied, thank you.

2020-10-06 18:32:52

by Dan Carpenter

[permalink] [raw]
Subject: Re: [PATCH][next] net: phy: dp83869: fix unsigned comparisons against less than zero values

On Fri, Oct 02, 2020 at 12:26:49PM -0500, Dan Murphy wrote:
> Colin
>
> On 10/2/20 11:54 AM, Colin King wrote:
> > From: Colin Ian King <[email protected]>
> >
> > Currently the comparisons of u16 integers value and sopass_val with
> > less than zero for error checking is always false because the values
> > are unsigned. Fix this by making these variables int. This does not
> > affect the shift and mask operations performed on these variables
> >
> > Addresses-Coverity: ("Unsigned compared against zero")
> > Fixes: 49fc23018ec6 ("net: phy: dp83869: support Wake on LAN")
> > Signed-off-by: Colin Ian King <[email protected]>
> > ---
> > drivers/net/phy/dp83869.c | 2 +-
> > 1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/drivers/net/phy/dp83869.c b/drivers/net/phy/dp83869.c
> > index 0aee5f645b71..cf6dec7b7d8e 100644
> > --- a/drivers/net/phy/dp83869.c
> > +++ b/drivers/net/phy/dp83869.c
> > @@ -305,7 +305,7 @@ static int dp83869_set_wol(struct phy_device *phydev,
> > static void dp83869_get_wol(struct phy_device *phydev,
> > struct ethtool_wolinfo *wol)
> > {
> > - u16 value, sopass_val;
> > + int value, sopass_val;
> > wol->supported = (WAKE_UCAST | WAKE_BCAST | WAKE_MAGIC |
> > WAKE_MAGICSECURE);
>
> Wonder why this was not reported before as the previous comparison issue
> reported by zero day.

It was reported on Sep 25. I forward those zero day bot emails.

https://lore.kernel.org/lkml/20200925123858.GX18329@kadam/

regards,
dan carpenter