From nobody Tue Feb 10 13:51:18 2026 X-Original-To: dev-commits-src-main@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4f9NJQ6wWyz6RLQ1 for ; Tue, 10 Feb 2026 13:51:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R13" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4f9NJQ28Mnz3lxT for ; Tue, 10 Feb 2026 13:51:18 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770731478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qae+gOFQEHxwxVPZ9vu5FJP5kWJL+sW5RzaAGggxm4E=; b=AMnC2JnenL7JU60LPwLzzkOfeJSFHzNpcRP5MCac1td8s6zV0/ZRXSHD83LdPrbw4frjk1 b4+d3ov3ET6SlZ6+YlNKxT7O55KSB2WaYW6k6kqI8rkRPMcefuEtw4GoUGNtRbRRWqCncc icALygrdpr00dfqoVhAr2L+Aae01qeZSsBS3cHXD4ejwBxHO8iIHCdTFc/FYkNyELaG5sF sZdR6oENbqZxH2kENFLfbshvZ6VPVWuCeN3u3flF2bPm7+mh3/l07T5rtOYoxHzkKG6ARA Cv/ZDIPYk3zgz7XZQcYJ5Swyi1AO0Aqv7Fnt5kL0BrdZeGGQAO4u3omYQlZUiw== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1770731478; a=rsa-sha256; cv=none; b=LekLoxpbfgIAKBQUyKP4O9UaX0BkzBGaXgqLG0Cl26Vpbn/1RGXRhUmSjzzweIcpmbRpSK x0AJ/JjP4e/umxdl3D9Hd+5QS4R3lgvGtAorqPaRAjmSxnO9AEzGNih6vgwVEjd9MhyYyM yM6TmDpeni8jsBlyzL8LN+yu17v5jwoWfSBKnDhUiA4XQyVIe7BQWu2vjmFFcsBnMfgNsf d2oI6vuXpNVuKDdzy8S5YHfN+cn74vONy+/HlAkbApqjexCbhedDrAyz4g4X2wHTjyxJSU R2Y13iZls2+b7f6BsggZAQw3dnwqJoB1PQURKmENBH9j1eyqKN16IGsO1ifvDg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1770731478; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=qae+gOFQEHxwxVPZ9vu5FJP5kWJL+sW5RzaAGggxm4E=; b=WMkoE7mxTSB/YaElbYW6ZFDjhc/bGCcukog3m/z6YUreqTUh5zTwml+3SkQeXGWKi16N0m qr9+x6CcmyuTbkTH4C6EedcFU3812MmL1jdXjzIged7SIE4q17PQ+YkRNFhde26rwttA69 CR71hVBEHUTZLXQ91wW3o/qqORJ/+c76ZDUtAOLIlkC/Olx4SBM01HqJMu9Oi14MQ3Ph/f yep58csLCrqMqAda0FT3hIynL2jSsyEtj92tQQxqPmsrZ6ca+XMGw8w85LZBsWSir1wmss Stgs822O9QXChZUr5/CKWlXRitL7mab4Ck4+kbtnBN5TrG+wJctKsBxFJyuAkw== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) by mxrelay.nyi.freebsd.org (Postfix) with ESMTP id 4f9NJQ1k1bz1KgY for ; Tue, 10 Feb 2026 13:51:18 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from git (uid 1279) (envelope-from git@FreeBSD.org) id 3d3e8 by gitrepo.freebsd.org (DragonFly Mail Agent v0.13+ on gitrepo.freebsd.org); Tue, 10 Feb 2026 13:51:18 +0000 To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mark Johnston Subject: git: d8f7a7b44a95 - main - ip6_mroute: Deindent some code in ip6_mdq() List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: markj X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: d8f7a7b44a951368d637bbbdc06c28ffd6331d76 Auto-Submitted: auto-generated Date: Tue, 10 Feb 2026 13:51:18 +0000 Message-Id: <698b37d6.3d3e8.6c61bb81@gitrepo.freebsd.org> The branch main has been updated by markj: URL: https://cgit.FreeBSD.org/src/commit/?id=d8f7a7b44a951368d637bbbdc06c28ffd6331d76 commit d8f7a7b44a951368d637bbbdc06c28ffd6331d76 Author: Mark Johnston AuthorDate: 2026-02-09 22:52:20 +0000 Commit: Mark Johnston CommitDate: 2026-02-10 13:45:06 +0000 ip6_mroute: Deindent some code in ip6_mdq() Deal with the mifi >= nummifs case early so that we can de-indent the rest of the code. This also ensures that the debug log (compiled out by default) doesn't perform an out-of-bounds access. Remove a bogus NULL test in an inner loop while here. No functional change intended. Reviewed by: glebius MFC after: 2 weeks Sponsored by: Stormshield Sponsored by: Klara, Inc. Differential Revision: https://reviews.freebsd.org/D55059 --- sys/netinet6/ip6_mroute.c | 134 +++++++++++++++++++++++----------------------- 1 file changed, 68 insertions(+), 66 deletions(-) diff --git a/sys/netinet6/ip6_mroute.c b/sys/netinet6/ip6_mroute.c index 5706c12fc5e4..46378cca5e21 100644 --- a/sys/netinet6/ip6_mroute.c +++ b/sys/netinet6/ip6_mroute.c @@ -1362,96 +1362,98 @@ ip6_mdq(struct mbuf *m, struct ifnet *ifp, struct mf6c *rt) * for its origin. */ mifi = rt->mf6c_parent; - if ((mifi >= nummifs) || (mif6table[mifi].m6_ifp != ifp)) { - /* came in the wrong interface */ - MRT6_DLOG(DEBUG_FORWARD, - "wrong if: ifid %d mifi %d mififid %x", ifp->if_index, - mifi, mif6table[mifi].m6_ifp->if_index); + if (mifi >= nummifs || mif6table[mifi].m6_ifp != ifp) { MRT6STAT_INC(mrt6s_wrong_if); rt->mf6c_wrong_if++; + if (mifi >= nummifs) + return (0); + + mifp = &mif6table[mifi]; + MRT6_DLOG(DEBUG_FORWARD, + "wrong if: ifid %d mifi %d mififid %x", ifp->if_index, + mifi, mifp->m6_ifp->if_index); + /* * If we are doing PIM processing, and we are forwarding * packets on this interface, send a message to the * routing daemon. */ /* have to make sure this is a valid mif */ - if (mifi < nummifs && mif6table[mifi].m6_ifp) - if (V_pim6 && (m->m_flags & M_LOOP) == 0) { - /* - * Check the M_LOOP flag to avoid an - * unnecessary PIM assert. - * XXX: M_LOOP is an ad-hoc hack... - */ - static struct sockaddr_in6 sin6 = - { sizeof(sin6), AF_INET6 }; + if (mifp->m6_ifp && V_pim6 && (m->m_flags & M_LOOP) == 0) { + /* + * Check the M_LOOP flag to avoid an + * unnecessary PIM assert. + * XXX: M_LOOP is an ad-hoc hack... + */ + static struct sockaddr_in6 sin6 = + { sizeof(sin6), AF_INET6 }; - struct mbuf *mm; - struct mrt6msg *im; + struct mbuf *mm; + struct mrt6msg *im; #ifdef MRT6_OINIT - struct omrt6msg *oim; + struct omrt6msg *oim; #endif - mm = m_copym(m, 0, sizeof(struct ip6_hdr), - M_NOWAIT); - if (mm && - (!M_WRITABLE(mm) || - mm->m_len < sizeof(struct ip6_hdr))) - mm = m_pullup(mm, sizeof(struct ip6_hdr)); - if (mm == NULL) - return (ENOBUFS); + mm = m_copym(m, 0, sizeof(struct ip6_hdr), + M_NOWAIT); + if (mm && + (!M_WRITABLE(mm) || + mm->m_len < sizeof(struct ip6_hdr))) + mm = m_pullup(mm, sizeof(struct ip6_hdr)); + if (mm == NULL) + return (ENOBUFS); #ifdef MRT6_OINIT - oim = NULL; + oim = NULL; #endif - im = NULL; - switch (V_ip6_mrouter_ver) { + im = NULL; + switch (V_ip6_mrouter_ver) { #ifdef MRT6_OINIT - case MRT6_OINIT: - oim = mtod(mm, struct omrt6msg *); - oim->im6_msgtype = MRT6MSG_WRONGMIF; - oim->im6_mbz = 0; - break; + case MRT6_OINIT: + oim = mtod(mm, struct omrt6msg *); + oim->im6_msgtype = MRT6MSG_WRONGMIF; + oim->im6_mbz = 0; + break; #endif - case MRT6_INIT: - im = mtod(mm, struct mrt6msg *); - im->im6_msgtype = MRT6MSG_WRONGMIF; - im->im6_mbz = 0; - break; - default: - m_freem(mm); - return (EINVAL); - } + case MRT6_INIT: + im = mtod(mm, struct mrt6msg *); + im->im6_msgtype = MRT6MSG_WRONGMIF; + im->im6_mbz = 0; + break; + default: + m_freem(mm); + return (EINVAL); + } - for (mifp = mif6table, iif = 0; - iif < nummifs && mifp && - mifp->m6_ifp != ifp; - mifp++, iif++) - ; + for (mifp = mif6table, iif = 0; + iif < nummifs && mifp->m6_ifp != ifp; + mifp++, iif++) + ; - switch (V_ip6_mrouter_ver) { + switch (V_ip6_mrouter_ver) { #ifdef MRT6_OINIT - case MRT6_OINIT: - oim->im6_mif = iif; - sin6.sin6_addr = oim->im6_src; - break; + case MRT6_OINIT: + oim->im6_mif = iif; + sin6.sin6_addr = oim->im6_src; + break; #endif - case MRT6_INIT: - im->im6_mif = iif; - sin6.sin6_addr = im->im6_src; - break; - } + case MRT6_INIT: + im->im6_mif = iif; + sin6.sin6_addr = im->im6_src; + break; + } - MRT6STAT_INC(mrt6s_upcalls); + MRT6STAT_INC(mrt6s_upcalls); - if (socket_send(V_ip6_mrouter, mm, &sin6) < 0) { - MRT6_DLOG(DEBUG_ANY, - "ip6_mrouter socket queue full"); - MRT6STAT_INC(mrt6s_upq_sockfull); - return (ENOBUFS); - } /* if socket Q full */ - } /* if PIM */ + if (socket_send(V_ip6_mrouter, mm, &sin6) < 0) { + MRT6_DLOG(DEBUG_ANY, + "ip6_mrouter socket queue full"); + MRT6STAT_INC(mrt6s_upq_sockfull); + return (ENOBUFS); + } + } return (0); - } /* if wrong iif */ + } /* If I sourced this packet, it counts as output, else it was input. */ if (m->m_pkthdr.rcvif == NULL) {