[PATCH net 1/3] net: hns3: fix a use of uninitialized variable problem

Jijie Shao posted 3 patches 1 month, 1 week ago
There is a newer version of this series
[PATCH net 1/3] net: hns3: fix a use of uninitialized variable problem
Posted by Jijie Shao 1 month, 1 week ago
From: Yonglong Liu <liuyonglong@huawei.com>

In hclge_add_fd_entry(), if the flow type is FLOW_EXT, and the data of
m_ext is all zero, then some members of the local variable "info" are
not initialized.

Fixes: 67b0e1428e2f ("net: hns3: add support for user-def data of flow director")
Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
Signed-off-by: Jijie Shao <shaojijie@huawei.com>
---
 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
index 92f9b8ec76d9..f61355b03e14 100644
--- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
+++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c
@@ -6545,8 +6545,8 @@ static int hclge_add_fd_entry(struct hnae3_handle *handle,
 			      struct ethtool_rxnfc *cmd)
 {
 	struct hclge_vport *vport = hclge_get_vport(handle);
+	struct hclge_fd_user_def_info info = {0};
 	struct hclge_dev *hdev = vport->back;
-	struct hclge_fd_user_def_info info;
 	u16 dst_vport_id = 0, q_index = 0;
 	struct ethtool_rx_flow_spec *fs;
 	struct hclge_fd_rule *rule;
-- 
2.33.0
Re: [PATCH net 1/3] net: hns3: fix a use of uninitialized variable problem
Posted by Simon Horman 1 month, 1 week ago
On Wed, Apr 02, 2025 at 08:09:59PM +0800, Jijie Shao wrote:
> From: Yonglong Liu <liuyonglong@huawei.com>
> 
> In hclge_add_fd_entry(), if the flow type is FLOW_EXT, and the data of
> m_ext is all zero, then some members of the local variable "info" are
> not initialized.

Hi,

I am assuming that this occurs when hclge_fd_check_spec() returns early
like this:

        if (!(fs->flow_type & FLOW_EXT) || hclge_fd_is_user_def_all_masked(fs))
                return 0;

But if so, should the description be "flow type is not FLOW_EXT, ..."
(note the "not")? Or perhaps more clearly refer to the FLOW_EXT bit
not being set?

Also, I think it would be worth mentioning hclge_fd_check_spec()
in the patch description, perhaps something like this.

  In hclge_add_fd_entry(), if  hclge_fd_check_spec() returns early
  because the FLOW_EXT bit is not set in the flow type, and ...

Also, does this manifest in a user-visible problem? If so, I think
it would be good to describe it in the patch description.

If not, I think it would be good to mention how the problem was found.
E.g.: "flagged by static analysis" (and mention the tool if it is publicly
Available. Or, "found by inspection".

> 
> Fixes: 67b0e1428e2f ("net: hns3: add support for user-def data of flow director")
> Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
> Signed-off-by: Jijie Shao <shaojijie@huawei.com>

...
Re: [PATCH net 1/3] net: hns3: fix a use of uninitialized variable problem
Posted by Jijie Shao 1 month, 1 week ago
on 2025/4/2 21:58, Simon Horman wrote:
> On Wed, Apr 02, 2025 at 08:09:59PM +0800, Jijie Shao wrote:
>> From: Yonglong Liu <liuyonglong@huawei.com>
>>
>> In hclge_add_fd_entry(), if the flow type is FLOW_EXT, and the data of
>> m_ext is all zero, then some members of the local variable "info" are
>> not initialized.
> Hi,
>
> I am assuming that this occurs when hclge_fd_check_spec() returns early
> like this:
>
>          if (!(fs->flow_type & FLOW_EXT) || hclge_fd_is_user_def_all_masked(fs))
>                  return 0;
>
> But if so, should the description be "flow type is not FLOW_EXT, ..."
> (note the "not")? Or perhaps more clearly refer to the FLOW_EXT bit
> not being set?
>
> Also, I think it would be worth mentioning hclge_fd_check_spec()
> in the patch description, perhaps something like this.
>
>    In hclge_add_fd_entry(), if  hclge_fd_check_spec() returns early
>    because the FLOW_EXT bit is not set in the flow type, and ...
>
> Also, does this manifest in a user-visible problem? If so, I think
> it would be good to describe it in the patch description.
>
> If not, I think it would be good to mention how the problem was found.
> E.g.: "flagged by static analysis" (and mention the tool if it is publicly
> Available. Or, "found by inspection".

Yes, your comments are reasonable.
I will add the description in v2

Thanks,
Jijie Shao

>
>> Fixes: 67b0e1428e2f ("net: hns3: add support for user-def data of flow director")
>> Signed-off-by: Yonglong Liu <liuyonglong@huawei.com>
>> Signed-off-by: Jijie Shao <shaojijie@huawei.com>
> ...