common/sfc_efx/base: fix dereferencing null pointer
authorHongbo Zheng <zhenghongbo3@huawei.com>
Sun, 25 Apr 2021 12:58:16 +0000 (20:58 +0800)
committerFerruh Yigit <ferruh.yigit@intel.com>
Tue, 27 Apr 2021 15:21:33 +0000 (17:21 +0200)
In function efx_pci_xilinx_cap_tbl_find, pointer entry_offsetp is used
before null pointer check, which may cause access to null pointer.

This patch fix this problem.

Fixes: ba9568b8b4b7 ("common/sfc_efx/base: add Xilinx capabilities table lookup")
Cc: stable@dpdk.org
Signed-off-by: Hongbo Zheng <zhenghongbo3@huawei.com>
Signed-off-by: Min Hu (Connor) <humin29@huawei.com>
Reviewed-by: Ferruh Yigit <ferruh.yigit@intel.com>
drivers/common/sfc_efx/base/efx_pci.c

index 8a26da6..9c7cacb 100644 (file)
@@ -310,7 +310,7 @@ efx_pci_xilinx_cap_tbl_find(
        __in                            boolean_t skip_first,
        __inout                         efsys_dma_addr_t *entry_offsetp)
 {
-       efsys_dma_addr_t offset = *entry_offsetp;
+       efsys_dma_addr_t offset;
        boolean_t skip = skip_first;
        efx_qword_t header;
        uint32_t format;
@@ -322,6 +322,7 @@ efx_pci_xilinx_cap_tbl_find(
                goto fail1;
        }
 
+       offset = *entry_offsetp;
        rc = ENOENT;
        /*
         * SF-119689-TC Riverhead Host Interface section 4.2.2.