2022-12-19 08:41:39

by Horatiu Vultur

[permalink] [raw]
Subject: [PATCH net v2] net: microchip: vcap: Fix initialization of value and mask

Fix the following smatch warning:

smatch warnings:
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:103 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'value'.
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:106 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'mask'.

In case the vcap field was VCAP_FIELD_U128 and the key was different
than IP6_S/DIP then the value and mask were not initialized, therefore
initialize them.

Fixes: 610c32b2ce66 ("net: microchip: vcap: Add vcap_get_rule")
Reported-by: kernel test robot <[email protected]>
Reported-by: Dan Carpenter <[email protected]>
Reviewed-by: Saeed Mahameed <[email protected]>
Signed-off-by: Horatiu Vultur <[email protected]>
---
v1->v2:
- rebase on net
- both the mask and value were assigned to data->u128.value, which is
wrong, fix this.
---
drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c b/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
index 895bfff550d23..e0b206247f2eb 100644
--- a/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
+++ b/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
@@ -83,6 +83,8 @@ static void vcap_debugfs_show_rule_keyfield(struct vcap_control *vctrl,
hex = true;
break;
case VCAP_FIELD_U128:
+ value = data->u128.value;
+ mask = data->u128.mask;
if (key == VCAP_KF_L3_IP6_SIP || key == VCAP_KF_L3_IP6_DIP) {
u8 nvalue[16], nmask[16];

--
2.38.0


2022-12-19 12:59:25

by Michal Swiatkowski

[permalink] [raw]
Subject: Re: [PATCH net v2] net: microchip: vcap: Fix initialization of value and mask

On Mon, Dec 19, 2022 at 09:22:15AM +0100, Horatiu Vultur wrote:
> Fix the following smatch warning:
>
> smatch warnings:
> drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:103 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'value'.
> drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:106 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'mask'.
>
> In case the vcap field was VCAP_FIELD_U128 and the key was different
> than IP6_S/DIP then the value and mask were not initialized, therefore
> initialize them.
>
> Fixes: 610c32b2ce66 ("net: microchip: vcap: Add vcap_get_rule")
> Reported-by: kernel test robot <[email protected]>
> Reported-by: Dan Carpenter <[email protected]>
> Reviewed-by: Saeed Mahameed <[email protected]>
> Signed-off-by: Horatiu Vultur <[email protected]>
> ---
> v1->v2:
> - rebase on net
> - both the mask and value were assigned to data->u128.value, which is
> wrong, fix this.
> ---
> drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c b/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
> index 895bfff550d23..e0b206247f2eb 100644
> --- a/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
> +++ b/drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c
> @@ -83,6 +83,8 @@ static void vcap_debugfs_show_rule_keyfield(struct vcap_control *vctrl,
> hex = true;
> break;
> case VCAP_FIELD_U128:
> + value = data->u128.value;
> + mask = data->u128.mask;
> if (key == VCAP_KF_L3_IP6_SIP || key == VCAP_KF_L3_IP6_DIP) {
> u8 nvalue[16], nmask[16];
>
> --
> 2.38.0

Looks fine
Reviewed-by: Michal Swiatkowski <[email protected]>

2022-12-19 13:07:50

by patchwork-bot+netdevbpf

[permalink] [raw]
Subject: Re: [PATCH net v2] net: microchip: vcap: Fix initialization of value and mask

Hello:

This patch was applied to netdev/net.git (master)
by David S. Miller <[email protected]>:

On Mon, 19 Dec 2022 09:22:15 +0100 you wrote:
> Fix the following smatch warning:
>
> smatch warnings:
> drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:103 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'value'.
> drivers/net/ethernet/microchip/vcap/vcap_api_debugfs.c:106 vcap_debugfs_show_rule_keyfield() error: uninitialized symbol 'mask'.
>
> In case the vcap field was VCAP_FIELD_U128 and the key was different
> than IP6_S/DIP then the value and mask were not initialized, therefore
> initialize them.
>
> [...]

Here is the summary with links:
- [net,v2] net: microchip: vcap: Fix initialization of value and mask
https://git.kernel.org/netdev/net/c/10073399cb5e

You are awesome, thank you!
--
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html