--- src/sys/netinet6/udp6_usrreq.c 2004/06/03 16:21:22 1.15 +++ src/sys/netinet6/udp6_usrreq.c 2004/06/07 07:02:42 1.16 @@ -228,7 +228,9 @@ udp6_input(struct mbuf **mp, int *offp, * (Algorithm copied from raw_intr().) */ last = NULL; - LIST_FOREACH(in6p, &udbinfo.listhead, inp_list) { + LIST_FOREACH(in6p, &udbinfo.pcblisthead, inp_list) { + if ((in6p->inp_flags & INP_PLACEMARKER) == 0) + continue; if ((in6p->inp_vflag & INP_IPV6) == 0) continue; if (in6p->in6p_lport != uh->uh_dport) @@ -471,11 +473,11 @@ udp6_ctlinput(int cmd, struct sockaddr * bzero(&uh, sizeof(uh)); m_copydata(m, off, sizeof(*uhp), (caddr_t)&uh); - (void) in6_pcbnotify(&udbinfo.listhead, sa, uh.uh_dport, + (void) in6_pcbnotify(&udbinfo.pcblisthead, sa, uh.uh_dport, (struct sockaddr *)ip6cp->ip6c_src, uh.uh_sport, cmd, notify); } else - (void) in6_pcbnotify(&udbinfo.listhead, sa, 0, + (void) in6_pcbnotify(&udbinfo.pcblisthead, sa, 0, (const struct sockaddr *)sa6_src, 0, cmd, notify); }