Message ID | Y8qbYAb+YSXo1DgR@kili (mailing list archive) |
---|---|
State | Accepted |
Commit | 3bee9b573af515a8f15db70e7875ac96f87d57b5 |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | [net-next] net: microchip: sparx5: Fix uninitialized variable in vcap_path_exist() | expand |
Hi Dan, Thanks for the fix. I have not seen any CONFIG_INIT_STACK_ALL=y in any of my .configs, though, so I will be updating my test suite to catch this. Reviewed-by: Steen Hegelund <Steen.Hegelund@microchip.com> On Fri, 2023-01-20 at 16:47 +0300, Dan Carpenter wrote: > EXTERNAL EMAIL: Do not click links or open attachments unless you know the > content is safe > > The "eport" variable needs to be initialized to NULL for this code to > work. > > Fixes: 814e7693207f ("net: microchip: vcap api: Add a storage state to a VCAP > rule") > Signed-off-by: Dan Carpenter <error27@gmail.com> > --- > Probably you had CONFIG_INIT_STACK_ALL=y in your .config for this to > pass testing. > > drivers/net/ethernet/microchip/vcap/vcap_api.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c > b/drivers/net/ethernet/microchip/vcap/vcap_api.c > index 71f787a78295..69c026778b42 100644 > --- a/drivers/net/ethernet/microchip/vcap/vcap_api.c > +++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c > @@ -2012,7 +2012,8 @@ static int vcap_get_next_chain(struct vcap_control > *vctrl, > static bool vcap_path_exist(struct vcap_control *vctrl, struct net_device > *ndev, > int dst_cid) > { > - struct vcap_enabled_port *eport, *elem; > + struct vcap_enabled_port *eport = NULL; > + struct vcap_enabled_port *elem; > struct vcap_admin *admin; > int tmp; > > -- > 2.35.1 > BR Steen
On Fri, Jan 20, 2023 at 03:25:36PM +0100, Steen Hegelund wrote: > Hi Dan, > > Thanks for the fix. > > I have not seen any CONFIG_INIT_STACK_ALL=y in any of my .configs, though, so I > will be updating my test suite to catch this. No, what I'm saying is that for a lot of people all stack variables are initialized to zero by default so sometimes people are like, "I've tested this a thousand times. How has it even been working?" In your case I guess it was working because the eport was never not found. regards, dan carpenter
Hello: This patch was applied to netdev/net-next.git (master) by Jakub Kicinski <kuba@kernel.org>: On Fri, 20 Jan 2023 16:47:12 +0300 you wrote: > The "eport" variable needs to be initialized to NULL for this code to > work. > > Fixes: 814e7693207f ("net: microchip: vcap api: Add a storage state to a VCAP rule") > Signed-off-by: Dan Carpenter <error27@gmail.com> > --- > Probably you had CONFIG_INIT_STACK_ALL=y in your .config for this to > pass testing. > > [...] Here is the summary with links: - [net-next] net: microchip: sparx5: Fix uninitialized variable in vcap_path_exist() https://git.kernel.org/netdev/net-next/c/3bee9b573af5 You are awesome, thank you!
diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api.c b/drivers/net/ethernet/microchip/vcap/vcap_api.c index 71f787a78295..69c026778b42 100644 --- a/drivers/net/ethernet/microchip/vcap/vcap_api.c +++ b/drivers/net/ethernet/microchip/vcap/vcap_api.c @@ -2012,7 +2012,8 @@ static int vcap_get_next_chain(struct vcap_control *vctrl, static bool vcap_path_exist(struct vcap_control *vctrl, struct net_device *ndev, int dst_cid) { - struct vcap_enabled_port *eport, *elem; + struct vcap_enabled_port *eport = NULL; + struct vcap_enabled_port *elem; struct vcap_admin *admin; int tmp;
The "eport" variable needs to be initialized to NULL for this code to work. Fixes: 814e7693207f ("net: microchip: vcap api: Add a storage state to a VCAP rule") Signed-off-by: Dan Carpenter <error27@gmail.com> --- Probably you had CONFIG_INIT_STACK_ALL=y in your .config for this to pass testing. drivers/net/ethernet/microchip/vcap/vcap_api.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)