diff options
author | rwatson <rwatson@FreeBSD.org> | 2004-08-06 03:45:45 +0000 |
---|---|---|
committer | rwatson <rwatson@FreeBSD.org> | 2004-08-06 03:45:45 +0000 |
commit | 11a2e8ce3c40516b1b505be3d5cdbf720ba8069f (patch) | |
tree | 38d3ac3c4e0dee27c2bff0875fc15138701f62ba /sys/netinet6/udp6_usrreq.c | |
parent | 6680706c2bf89170fdfb9bd5bc9332aa7319a17a (diff) | |
download | FreeBSD-src-11a2e8ce3c40516b1b505be3d5cdbf720ba8069f.zip FreeBSD-src-11a2e8ce3c40516b1b505be3d5cdbf720ba8069f.tar.gz |
Pass pcbinfo structures to in6_pcbnotify() rather than pcbhead
structures, allowing in6_pcbnotify() to lock the pcbinfo and each
inpcb that it notifies of ICMPv6 events. This prevents inpcb
assertions from firing when IPv6 generates and delievers event
notifications for inpcbs.
Reported by: kuriyama
Tested by: kuriyama
Diffstat (limited to 'sys/netinet6/udp6_usrreq.c')
-rw-r--r-- | sys/netinet6/udp6_usrreq.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index c248ce2..6b1dc25 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -444,11 +444,11 @@ udp6_ctlinput(cmd, sa, d) bzero(&uh, sizeof(uh)); m_copydata(m, off, sizeof(*uhp), (caddr_t)&uh); - (void) in6_pcbnotify(&udb, sa, uh.uh_dport, + (void) in6_pcbnotify(&udbinfo, sa, uh.uh_dport, (struct sockaddr *)ip6cp->ip6c_src, uh.uh_sport, cmd, cmdarg, notify); } else - (void) in6_pcbnotify(&udb, sa, 0, + (void) in6_pcbnotify(&udbinfo, sa, 0, (const struct sockaddr *)sa6_src, 0, cmd, cmdarg, notify); } |