In rip6_input(), in case of multicast, we might skip the normal processing

and go to the next iteration early if multicast filtering would decide that
this socket shall not receive the data.
Unlock the pcb in that case or we leak the read lock and next time trying
to get a write lock, would hang forever.

PR:		kern/149608
Submitted by:	Chris Luke (chrisy flirble.org)
MFC after:	3 days
This commit is contained in:
Bjoern A. Zeeb 2010-08-14 14:13:44 +00:00
parent 7ec4e6b83b
commit 8c09aa57d9
Notes: svn2git 2020-12-20 02:59:44 +00:00
svn path=/head/; revision=211301

View File

@ -248,6 +248,7 @@ rip6_input(struct mbuf **mp, int *offp, int proto)
}
if (blocked != MCAST_PASS) {
IP6STAT_INC(ip6s_notmember);
INP_RUNLOCK(in6p);
continue;
}
}