Commit ef003ce0 authored by Jian Shen's avatar Jian Shen Committed by Jiantao Xiao
Browse files

net: hns3: set the freed pointers to NULL when lifetime is not end

driver inclusion
category: cleanup
bugzilla: https://gitee.com/openeuler/kernel/issues/I8PDAE


CVE: NA

----------------------------------------------------------------------

There are several pointers are freed but not setted to NULL,
and their lifetime is not end immediately. To avoid misusing
there wild pointers, set them to NULL.

Signed-off-by: default avatarJian Shen <shenjian15@huawei.com>
parent 49f3230c
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -303,6 +303,7 @@ static int hns3_lp_run_test(struct net_device *ndev, enum hnae3_loop mode)
			good_cnt++;
		} else {
			kfree_skb(skb);
			skb = NULL;
			netdev_err(ndev, "hns3_lb_run_test xmit failed: %d\n",
				   tx_ret);
		}
+4 −0
Original line number Diff line number Diff line
@@ -5441,6 +5441,7 @@ static void hclge_fd_free_node(struct hclge_dev *hdev,
{
	hlist_del(&rule->rule_node);
	kfree(rule);
	rule = NULL;
	hclge_sync_fd_state(hdev);
}

@@ -5465,6 +5466,7 @@ static void hclge_update_fd_rule_node(struct hclge_dev *hdev,
		new_rule->rule_node.pprev = old_rule->rule_node.pprev;
		memcpy(old_rule, new_rule, sizeof(*old_rule));
		kfree(new_rule);
		new_rule = NULL;
		break;
	case HCLGE_FD_DELETED:
		hclge_fd_dec_rule_cnt(hdev, old_rule->location);
@@ -9031,6 +9033,7 @@ static void hclge_update_mac_node(struct hclge_mac_node *mac_node,
		if (mac_node->state == HCLGE_MAC_TO_ADD) {
			list_del(&mac_node->node);
			kfree(mac_node);
			mac_node = NULL;
		} else {
			mac_node->state = HCLGE_MAC_TO_DEL;
		}
@@ -9661,6 +9664,7 @@ static void hclge_uninit_vport_mac_list(struct hclge_vport *vport,
		case HCLGE_MAC_TO_ADD:
			list_del(&mac_node->node);
			kfree(mac_node);
			mac_node = NULL;
			break;
		}
	}
+4 −0
Original line number Diff line number Diff line
@@ -1028,6 +1028,7 @@ static void hclgevf_update_mac_node(struct hclgevf_mac_addr_node *mac_node,
		if (mac_node->state == HCLGEVF_MAC_TO_ADD) {
			list_del(&mac_node->node);
			kfree(mac_node);
			mac_node = NULL;
		} else {
			mac_node->state = HCLGEVF_MAC_TO_DEL;
		}
@@ -2494,6 +2495,7 @@ static int hclgevf_init_msi(struct hclgevf_dev *hdev)
					sizeof(int), GFP_KERNEL);
	if (!hdev->vector_irq) {
		devm_kfree(&pdev->dev, hdev->vector_status);
		hdev->vector_status = NULL;
		pci_free_irq_vectors(pdev);
		return -ENOMEM;
	}
@@ -2507,6 +2509,8 @@ static void hclgevf_uninit_msi(struct hclgevf_dev *hdev)

	devm_kfree(&pdev->dev, hdev->vector_status);
	devm_kfree(&pdev->dev, hdev->vector_irq);
	hdev->vector_status = NULL;
	hdev->vector_irq = NULL;
	pci_free_irq_vectors(pdev);
}