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