Date: Fri, 31 Jul 2026 10:58:39 +0000 From: Kevin Bowling <kbowling@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org Subject: git: 6020de5ad154 - main - ixv: fix multicast address enumeration Message-ID: <6a6c7fdf.39ad4.c070c42@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch main has been updated by kbowling: URL: https://cgit.FreeBSD.org/src/commit/?id=6020de5ad154d54c8b9a838f28612c2182330c67 commit 6020de5ad154d54c8b9a838f28612c2182330c67 Author: Kevin Bowling <kbowling@FreeBSD.org> AuthorDate: 2026-07-28 11:06:23 +0000 Commit: Kevin Bowling <kbowling@FreeBSD.org> CommitDate: 2026-07-31 10:56:15 +0000 ixv: fix multicast address enumeration if_foreach_llmaddr() adds each callback return value to its running count. Returning the incremented count made the address indices grow as 0, 1, 3, 7, and so on, eventually writing beyond the multicast address array. Return one address per callback and stop copying when the array is full, matching the ixv-1.6.12 driver. Fixes: ff06a8dbb677 ("Mechanically convert ixgbe(4) to IfAPI") MFC after: 1 week --- sys/dev/ixgbe/if_ixv.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/sys/dev/ixgbe/if_ixv.c b/sys/dev/ixgbe/if_ixv.c index 8a1c1aae041d..24e6fa714a7b 100644 --- a/sys/dev/ixgbe/if_ixv.c +++ b/sys/dev/ixgbe/if_ixv.c @@ -842,11 +842,14 @@ ixv_negotiate_api(struct ixgbe_softc *sc) static u_int ixv_if_multi_set_cb(void *cb_arg, struct sockaddr_dl *addr, u_int cnt) { + if (cnt >= MAX_NUM_MULTICAST_ADDRESSES) + return (0); + bcopy(LLADDR(addr), &((u8 *)cb_arg)[cnt * IXGBE_ETH_LENGTH_OF_ADDRESS], IXGBE_ETH_LENGTH_OF_ADDRESS); - return (++cnt); + return (1); } /************************************************************************ @@ -1982,4 +1985,3 @@ ixv_init_device_features(struct ixgbe_softc *sc) if (sc->feat_cap & IXGBE_FEATURE_NEEDS_CTXD) sc->feat_en |= IXGBE_FEATURE_NEEDS_CTXD; } /* ixv_init_device_features */ -home | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a6c7fdf.39ad4.c070c42>
