net/bnxt: fix null pointer dereference in LED config

For VFs, bp->leds is uninitialized, check bp->leds is
not null before checking for bp->leds->num_leds.

segfault backtrace in trex program when use VF:
11: bnxt_hwrm_port_led_cfg (bp=0x23ffb2140, led_on=true)
10: bnxt_dev_led_on_op (dev=0x22d7780 <rte_eth_devices>)
 9: rte_eth_led_on (port_id=0)
 8: DpdkTRexPortAttr::set_led (this=0x23b6ce0, on=true)
 7: DpdkTRexPortAttr::DpdkTRexPortAttr
 6: CTRexExtendedDriverBnxt::create_port_attr
 5: CPhyEthIF::Create
 4: CGlobalTRex::device_start
 3: CGlobalTRex::Create
 2: main_test
 1: main

Fixes: d4d5a04 ("net/bnxt: fix unnecessary memory allocation")
Cc: stable@dpdk.org

Signed-off-by: Mao YingMing <maoyingming@baidu.com>
Acked-by: Somnath Kotur <somnath.kotur@broadcom.com>
Acked-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
This commit is contained in:
Mao YingMing 2022-08-02 12:08:17 +08:00 committed by Ajit Khaparde
parent 6277523c04
commit 4bfb499829

View File

@ -4535,7 +4535,7 @@ int bnxt_hwrm_port_led_cfg(struct bnxt *bp, bool led_on)
uint16_t duration = 0;
int rc, i;
if (!bp->leds->num_leds || BNXT_VF(bp))
if (BNXT_VF(bp) || !bp->leds || !bp->leds->num_leds)
return -EOPNOTSUPP;
HWRM_PREP(&req, HWRM_PORT_LED_CFG, BNXT_USE_CHIMP_MB);