Message ID | Y3OQrGoFqvX2GkbJ@kili (mailing list archive) |
---|---|
State | Superseded |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: microchip: sparx5: prevent uninitialized variable | expand |
> Smatch complains that: > > drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c:112 > sparx5_dcb_apptrust_validate() error: uninitialized symbol 'match'. > > This would only happen if the: > > if (sparx5_dcb_apptrust_policies[i].nselectors != nselectors) > > condition is always true (they are not equal). The "nselectors" > variable comes from dcbnl_ieee_set() and it is a number between 0-256. > This seems like a probably a real bug. That is indeed a bug. Thank you, much appreciated. > > Fixes: 23f8382cd95d ("net: microchip: sparx5: add support for apptrust") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > --- > drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c b/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c > index 8108f3767767..74abb946b2a3 100644 > --- a/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c > +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c > @@ -90,7 +90,7 @@ static int sparx5_dcb_app_validate(struct net_device *dev, > static int sparx5_dcb_apptrust_validate(struct net_device *dev, u8 *selectors, > int nselectors, int *err) > { > - bool match; > + bool match = false; > int i, ii; > > for (i = 0; i < ARRAY_SIZE(sparx5_dcb_apptrust_policies); i++) { > -- > 2.35.1 > Reviewed-by: Daniel Machon <daniel.machon@microchip.com>
Hello, On Tue, 2022-11-15 at 16:14 +0300, Dan Carpenter wrote: > Smatch complains that: > > drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c:112 > sparx5_dcb_apptrust_validate() error: uninitialized symbol 'match'. > > This would only happen if the: > > if (sparx5_dcb_apptrust_policies[i].nselectors != nselectors) > > condition is always true (they are not equal). The "nselectors" > variable comes from dcbnl_ieee_set() and it is a number between 0-256. > This seems like a probably a real bug. > > Fixes: 23f8382cd95d ("net: microchip: sparx5: add support for apptrust") > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> checkpatch complains about the From/SoB mismatch - 'Dan Carpenter <error27@gmail.com>' vs 'Dan Carpenter <dan.carpenter@oracle.com>' Could you please send a v2 addressing that? thanks! Paolo
On Thu, Nov 17, 2022 at 04:03:07PM +0100, Paolo Abeni wrote: > Hello, > > On Tue, 2022-11-15 at 16:14 +0300, Dan Carpenter wrote: > > Smatch complains that: > > > > drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c:112 > > sparx5_dcb_apptrust_validate() error: uninitialized symbol 'match'. > > > > This would only happen if the: > > > > if (sparx5_dcb_apptrust_policies[i].nselectors != nselectors) > > > > condition is always true (they are not equal). The "nselectors" > > variable comes from dcbnl_ieee_set() and it is a number between 0-256. > > This seems like a probably a real bug. > > > > Fixes: 23f8382cd95d ("net: microchip: sparx5: add support for apptrust") > > Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> > > checkpatch complains about the From/SoB mismatch - > 'Dan Carpenter <error27@gmail.com>' vs 'Dan Carpenter > <dan.carpenter@oracle.com>' > > Could you please send a v2 addressing that? Oops. Sorry. Resent. regards, dan carpenter
diff --git a/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c b/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c index 8108f3767767..74abb946b2a3 100644 --- a/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c +++ b/drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c @@ -90,7 +90,7 @@ static int sparx5_dcb_app_validate(struct net_device *dev, static int sparx5_dcb_apptrust_validate(struct net_device *dev, u8 *selectors, int nselectors, int *err) { - bool match; + bool match = false; int i, ii; for (i = 0; i < ARRAY_SIZE(sparx5_dcb_apptrust_policies); i++) {
Smatch complains that: drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c:112 sparx5_dcb_apptrust_validate() error: uninitialized symbol 'match'. This would only happen if the: if (sparx5_dcb_apptrust_policies[i].nselectors != nselectors) condition is always true (they are not equal). The "nselectors" variable comes from dcbnl_ieee_set() and it is a number between 0-256. This seems like a probably a real bug. Fixes: 23f8382cd95d ("net: microchip: sparx5: add support for apptrust") Signed-off-by: Dan Carpenter <dan.carpenter@oracle.com> --- drivers/net/ethernet/microchip/sparx5/sparx5_dcb.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)