diff mbox series

[next] net: phy: dp83869: fix unsigned comparisons against less than zero values

Message ID 20201002165422.94328-1-colin.king@canonical.com
State New
Headers show
Series [next] net: phy: dp83869: fix unsigned comparisons against less than zero values | expand

Commit Message

Colin King Oct. 2, 2020, 4:54 p.m. UTC
From: Colin Ian King <colin.king@canonical.com>

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 <colin.king@canonical.com>
---
 drivers/net/phy/dp83869.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Dan Murphy Oct. 2, 2020, 5:26 p.m. UTC | #1
Colin

On 10/2/20 11:54 AM, Colin King wrote:
> From: Colin Ian King <colin.king@canonical.com>
>
> 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 <colin.king@canonical.com>
> ---
>   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 <dmurphy@ti.com>
Andrew Lunn Oct. 2, 2020, 5:39 p.m. UTC | #2
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 <colin.king@canonical.com>
> > 
> > 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 <colin.king@canonical.com>
> > ---
> >   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
David Miller Oct. 4, 2020, 12:09 a.m. UTC | #3
From: Colin King <colin.king@canonical.com>
Date: Fri,  2 Oct 2020 17:54:22 +0100

> From: Colin Ian King <colin.king@canonical.com>
> 
> 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 <colin.king@canonical.com>

Applied, thank you.
Dan Carpenter Oct. 6, 2020, 6:26 p.m. UTC | #4
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 <colin.king@canonical.com>
> > 
> > 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 <colin.king@canonical.com>
> > ---
> >   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
diff mbox series

Patch

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);