Skip site navigation (1)Skip section navigation (2)
Date:      Sat, 14 Aug 2010 14:13:44 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r211301 - head/sys/netinet6
Message-ID:  <201008141413.o7EEDiBZ029751@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: bz
Date: Sat Aug 14 14:13:44 2010
New Revision: 211301
URL: http://svn.freebsd.org/changeset/base/211301

Log:
  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

Modified:
  head/sys/netinet6/raw_ip6.c

Modified: head/sys/netinet6/raw_ip6.c
==============================================================================
--- head/sys/netinet6/raw_ip6.c	Sat Aug 14 14:09:13 2010	(r211300)
+++ head/sys/netinet6/raw_ip6.c	Sat Aug 14 14:13:44 2010	(r211301)
@@ -248,6 +248,7 @@ rip6_input(struct mbuf **mp, int *offp, 
 			}
 			if (blocked != MCAST_PASS) {
 				IP6STAT_INC(ip6s_notmember);
+				INP_RUNLOCK(in6p);
 				continue;
 			}
 		}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201008141413.o7EEDiBZ029751>