]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
eth: bnxt: fix out-of-range access of vnic_info array
authorTaehee Yoo <ap420073@gmail.com>
Sun, 16 Mar 2025 02:58:37 +0000 (02:58 +0000)
committerPaolo Abeni <pabeni@redhat.com>
Fri, 21 Mar 2025 18:21:04 +0000 (19:21 +0100)
The bnxt_queue_{start | stop}() access vnic_info as much as allocated,
which indicates bp->nr_vnics.
So, it should not reach bp->vnic_info[bp->nr_vnics].

Fixes: 661958552eda ("eth: bnxt: do not use BNXT_VNIC_NTUPLE unconditionally in queue restart logic")
Signed-off-by: Taehee Yoo <ap420073@gmail.com>
Reviewed-by: Michael Chan <michael.chan@broadcom.com>
Link: https://patch.msgid.link/20250316025837.939527-1-ap420073@gmail.com
Signed-off-by: Paolo Abeni <pabeni@redhat.com>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 55f553debd3b293db68756e091378072c47cb3a5..0ddc3d41e2d81934cea16e598ea5f14d6625fc67 100644 (file)
@@ -15651,7 +15651,7 @@ static int bnxt_queue_start(struct net_device *dev, void *qmem, int idx)
        cpr = &rxr->bnapi->cp_ring;
        cpr->sw_stats->rx.rx_resets++;
 
-       for (i = 0; i <= bp->nr_vnics; i++) {
+       for (i = 0; i < bp->nr_vnics; i++) {
                vnic = &bp->vnic_info[i];
 
                rc = bnxt_hwrm_vnic_set_rss_p5(bp, vnic, true);
@@ -15679,7 +15679,7 @@ static int bnxt_queue_stop(struct net_device *dev, void *qmem, int idx)
        struct bnxt_vnic_info *vnic;
        int i;
 
-       for (i = 0; i <= bp->nr_vnics; i++) {
+       for (i = 0; i < bp->nr_vnics; i++) {
                vnic = &bp->vnic_info[i];
                vnic->mru = 0;
                bnxt_hwrm_vnic_update(bp, vnic,