The branch stable/13 has been updated by ae:

URL: 
https://cgit.FreeBSD.org/src/commit/?id=40ec2323e689e2b9bcede8e2f217b689e64f621f

commit 40ec2323e689e2b9bcede8e2f217b689e64f621f
Author:     Andrey V. Elsukov <a...@freebsd.org>
AuthorDate: 2021-08-05 08:51:46 +0000
Commit:     Andrey V. Elsukov <a...@freebsd.org>
CommitDate: 2021-08-13 07:31:11 +0000

    Fix panic in IPv6 multicast code.
    
    Add check that ifp supports IPv6 multicasts in in6_getmulti.
    This fixes panic when user application tries to join into multicast
    group on an interface that doesn't support IPv6 multicasts, like
    IFT_PFLOG interfaces.
    
    PR:             257302
    Reviewed by:    melifaro
    Differential Revision: https://reviews.freebsd.org/D31420
    
    (cherry picked from commit d477a7feed177d0ad5c12bc6e2cce804d427ed38)
---
 sys/netinet6/in6_mcast.c | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/sys/netinet6/in6_mcast.c b/sys/netinet6/in6_mcast.c
index 0744a1178fc7..7326befc6d01 100644
--- a/sys/netinet6/in6_mcast.c
+++ b/sys/netinet6/in6_mcast.c
@@ -374,9 +374,18 @@ in6_getmulti(struct ifnet *ifp, const struct in6_addr 
*group,
        IN6_MULTI_LIST_LOCK();
        IF_ADDR_WLOCK(ifp);
        NET_EPOCH_ENTER(et);
-       inm = in6m_lookup_locked(ifp, group);
+       /*
+        * Does ifp support IPv6 multicasts?
+        */
+       if (ifp->if_afdata[AF_INET6] == NULL)
+               error = ENODEV;
+       else
+               inm = in6m_lookup_locked(ifp, group);
        NET_EPOCH_EXIT(et);
 
+       if (error != 0)
+               goto out_locked;
+
        if (inm != NULL) {
                /*
                 * If we already joined this group, just bump the
_______________________________________________
dev-commits-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/dev-commits-src-all
To unsubscribe, send any mail to "dev-commits-src-all-unsubscr...@freebsd.org"

Reply via email to