net: hns3: fix dereference of ae_dev before it is null checked
authorColin Ian King <colin.king@canonical.com>
Mon, 17 Jun 2019 11:42:14 +0000 (12:42 +0100)
committerDavid S. Miller <davem@davemloft.net>
Mon, 17 Jun 2019 21:02:57 +0000 (14:02 -0700)
Pointer ae_dev is null checked however, prior to that it is dereferenced
when assigned pointer ops. Fix this by assigning pointer ops after ae_dev
has been null checked.

Addresses-Coverity: ("Dereference before null check")
Signed-off-by: Colin Ian King <colin.king@canonical.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/hisilicon/hns3/hns3_enet.c

index 951a8125ea0ce6e84fbca11ae6bba8be33903594..58633cdcdcfd597af70b4969d19104736658ca3a 100644 (file)
@@ -1940,13 +1940,14 @@ static pci_ers_result_t hns3_error_detected(struct pci_dev *pdev,
 static pci_ers_result_t hns3_slot_reset(struct pci_dev *pdev)
 {
        struct hnae3_ae_dev *ae_dev = pci_get_drvdata(pdev);
-       const struct hnae3_ae_ops *ops = ae_dev->ops;
+       const struct hnae3_ae_ops *ops;
        enum hnae3_reset_type reset_type;
        struct device *dev = &pdev->dev;
 
        if (!ae_dev || !ae_dev->ops)
                return PCI_ERS_RESULT_NONE;
 
+       ops = ae_dev->ops;
        /* request the reset */
        if (ops->reset_event) {
                if (!ae_dev->override_pci_need_reset) {