]> git.baikalelectronics.ru Git - kernel.git/commitdiff
net: hns3: fix use-after-free bug in hclgevf_send_mbx_msg
authorJie Wang <wangjie125@huawei.com>
Fri, 10 Dec 2021 13:09:33 +0000 (21:09 +0800)
committerDavid S. Miller <davem@davemloft.net>
Sun, 12 Dec 2021 16:20:50 +0000 (16:20 +0000)
Currently, the hns3_remove function firstly uninstall client instance,
and then uninstall acceletion engine device. The netdevice is freed in
client instance uninstall process, but acceletion engine device uninstall
process still use it to trace runtime information. This causes a use after
free problem.

So fixes it by check the instance register state to avoid use after free.

Fixes: fe1b88bfcb4a ("net: hns3: add trace event support for PF/VF mailbox")
Signed-off-by: Jie Wang <wangjie125@huawei.com>
Signed-off-by: Guangbin Huang <huangguangbin2@huawei.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3vf/hclgevf_mbx.c

index fdc66fae096011a21a86b84b590604f0de152b27..c5ac6ecf36e107e6bdaf4a111814eae62d877f89 100644 (file)
@@ -114,7 +114,8 @@ int hclgevf_send_mbx_msg(struct hclgevf_dev *hdev,
 
        memcpy(&req->msg, send_msg, sizeof(struct hclge_vf_to_pf_msg));
 
-       trace_hclge_vf_mbx_send(hdev, req);
+       if (test_bit(HCLGEVF_STATE_NIC_REGISTERED, &hdev->state))
+               trace_hclge_vf_mbx_send(hdev, req);
 
        /* synchronous send */
        if (need_resp) {