Author: markj
Date: Tue Aug  4 15:00:02 2020
New Revision: 363841
URL: https://svnweb.freebsd.org/changeset/base/363841

Log:
  Remove an incorrect assertion from in6p_lookup_mcast_ifp().
  
  The socket may be bound to an IPv4-mapped IPv6 address.  However, the
  inp address is not relevant to the JOIN_GROUP or LEAVE_GROUP operations.
  
  While here remove an unnecessary check for inp == NULL.
  
  Reported by:  [email protected]
  Reviewed by:  hselasky
  MFC after:    1 week
  Sponsored by: The FreeBSD Foundation
  Differential Revision:        https://reviews.freebsd.org/D25888

Modified:
  head/sys/netinet6/in6_mcast.c

Modified: head/sys/netinet6/in6_mcast.c
==============================================================================
--- head/sys/netinet6/in6_mcast.c       Tue Aug  4 14:59:43 2020        
(r363840)
+++ head/sys/netinet6/in6_mcast.c       Tue Aug  4 15:00:02 2020        
(r363841)
@@ -1817,31 +1817,27 @@ ip6_getmoptions(struct inpcb *inp, struct sockopt *sop
  *
  * This routine exists to support legacy IPv6 multicast applications.
  *
- * If inp is non-NULL, use this socket's current FIB number for any
- * required FIB lookup. Look up the group address in the unicast FIB,
- * and use its ifp; usually, this points to the default next-hop.
- * If the FIB lookup fails, return NULL.
+ * Use the socket's current FIB number for any required FIB lookup. Look up the
+ * group address in the unicast FIB, and use its ifp; usually, this points to
+ * the default next-hop.  If the FIB lookup fails, return NULL.
  *
  * FUTURE: Support multiple forwarding tables for IPv6.
  *
  * Returns NULL if no ifp could be found.
  */
 static struct ifnet *
-in6p_lookup_mcast_ifp(const struct inpcb *inp,
-    const struct sockaddr_in6 *gsin6)
+in6p_lookup_mcast_ifp(const struct inpcb *inp, const struct sockaddr_in6 
*gsin6)
 {
        struct nhop_object      *nh;
        struct in6_addr         dst;
        uint32_t                scopeid;
        uint32_t                fibnum;
 
-       KASSERT(inp->inp_vflag & INP_IPV6,
-           ("%s: not INP_IPV6 inpcb", __func__));
        KASSERT(gsin6->sin6_family == AF_INET6,
            ("%s: not AF_INET6 group", __func__));
 
        in6_splitscope(&gsin6->sin6_addr, &dst, &scopeid);
-       fibnum = inp ? inp->inp_inc.inc_fibnum : RT_DEFAULT_FIB;
+       fibnum = inp->inp_inc.inc_fibnum;
        nh = fib6_lookup(fibnum, &dst, scopeid, 0, 0);
 
        return (nh ? nh->nh_ifp : NULL);
_______________________________________________
[email protected] mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "[email protected]"

Reply via email to