Message ID | 20240307010115.3054770-9-shaojijie@huawei.com (mailing list archive) |
---|---|
State | Superseded |
Commit | 4e2969a0d6a7549bc0bc1ebc990588b622c4443d |
Delegated to: | Netdev Maintainers |
Headers | show |
Series | There are some bugfix for the HNS3 ethernet driver | expand |
> -----Original Message----- > From: Jijie Shao <shaojijie@huawei.com> > Sent: Thursday, March 7, 2024 6:31 AM > To: yisen.zhuang@huawei.com; salil.mehta@huawei.com; > davem@davemloft.net; edumazet@google.com; kuba@kernel.org; > pabeni@redhat.com > Cc: shenjian15@huawei.com; wangjie125@huawei.com; > liuyonglong@huawei.com; shaojijie@huawei.com; netdev@vger.kernel.org; > linux-kernel@vger.kernel.org > Subject: [EXTERNAL] [PATCH net 8/8] net: hns3: add checking for vf id of > mailbox > > From: Jian Shen <shenjian15@huawei.com> > > Add checking for vf id of mailbox, in order to avoid array out-of-bounds risk. > > Signed-off-by: Jian Shen <shenjian15@huawei.com> > Signed-off-by: Jijie Shao <shaojijie@huawei.com> > --- > drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c | 7 ++++--- > 1 file changed, 4 insertions(+), 3 deletions(-) > > diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c > b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c > index 4b0d07ca2505..d4a0e0be7a72 100644 > --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c > +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c > @@ -1123,10 +1123,11 @@ void hclge_mbx_handler(struct hclge_dev > *hdev) > req = (struct hclge_mbx_vf_to_pf_cmd *)desc->data; > > flag = le16_to_cpu(crq->desc[crq->next_to_use].flag); > - if (unlikely(!hnae3_get_bit(flag, > HCLGE_CMDQ_RX_OUTVLD_B))) { > + if (unlikely(!hnae3_get_bit(flag, > HCLGE_CMDQ_RX_OUTVLD_B) || > + req->mbx_src_vfid > hdev->num_req_vfs)) { > dev_warn(&hdev->pdev->dev, > - "dropped invalid mailbox message, code = > %u\n", > - req->msg.code); > + "dropped invalid mailbox message, code = > %u, vfid = %u\n", > + req->msg.code, req->mbx_src_vfid); > > /* dropping/not processing this invalid message */ > crq->desc[crq->next_to_use].flag = 0; > -- > 2.30.0 > Reviewed-by: Sunil Goutham <sgoutham@marvell.com>
diff --git a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c index 4b0d07ca2505..d4a0e0be7a72 100644 --- a/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c +++ b/drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mbx.c @@ -1123,10 +1123,11 @@ void hclge_mbx_handler(struct hclge_dev *hdev) req = (struct hclge_mbx_vf_to_pf_cmd *)desc->data; flag = le16_to_cpu(crq->desc[crq->next_to_use].flag); - if (unlikely(!hnae3_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B))) { + if (unlikely(!hnae3_get_bit(flag, HCLGE_CMDQ_RX_OUTVLD_B) || + req->mbx_src_vfid > hdev->num_req_vfs)) { dev_warn(&hdev->pdev->dev, - "dropped invalid mailbox message, code = %u\n", - req->msg.code); + "dropped invalid mailbox message, code = %u, vfid = %u\n", + req->msg.code, req->mbx_src_vfid); /* dropping/not processing this invalid message */ crq->desc[crq->next_to_use].flag = 0;