From owner-freebsd-pf@FreeBSD.ORG Mon Apr 13 22:46:40 2009 Return-Path: Delivered-To: freebsd-pf@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 61FCD10656FC for ; Mon, 13 Apr 2009 22:46:39 +0000 (UTC) (envelope-from darkibot@gmail.com) Received: from mail-bw0-f164.google.com (mail-bw0-f164.google.com [209.85.218.164]) by mx1.freebsd.org (Postfix) with ESMTP id D24108FC08 for ; Mon, 13 Apr 2009 22:46:38 +0000 (UTC) (envelope-from darkibot@gmail.com) Received: by bwz8 with SMTP id 8so2219113bwz.43 for ; Mon, 13 Apr 2009 15:46:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=gamma; h=domainkey-signature:mime-version:received:in-reply-to:references :date:message-id:subject:from:to:content-type :content-transfer-encoding; bh=1aQ4Dm/CCjrxUkJjK+NsJA2tjWLyZiq8zdoYDmMBfII=; b=gW16P8O/Lj7hojwHB5GqWFCqhOOUYkljs1tc18SrlOw07DloQgGsOf7GhyLWMp+Xmm S6i6nMjWzJqqKOKmPYliJDQtd1pu4CK+r7ntx7tkdeDK6ckNNN8zR/n15OBzYMoreGwq q5Z2bWwe/fAtrKw9o+QNBbnFO+1110aLNOKh8= DomainKey-Signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=dwUbCFaBBMbZ5T4OHQyoDasJ20fayF2Zw6eMzT+RK5IWVHnF9wR3dqPNtH0fRnYJS+ 3Mq9fu1nV4hQNN9t2faSsGoEjvz28IXohhIydrkdbmZIykH7YTv5nlvyyX3yhZDFOe// ldguUHXK/Ase3KjZej28tIrCoMy3h1Py+LIzw= MIME-Version: 1.0 Received: by 10.223.108.140 with SMTP id f12mr1279251fap.69.1239660832588; Mon, 13 Apr 2009 15:13:52 -0700 (PDT) In-Reply-To: <200904110020.n3B0K301081510@freefall.freebsd.org> References: <200904110020.n3B0K301081510@freefall.freebsd.org> Date: Tue, 14 Apr 2009 01:13:52 +0300 Message-ID: From: Oleg S To: freebsd-pf@freebsd.org Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Subject: Re: kern/130977: [netgraph][pf] kernel panic trap 12 on user connect to VPN server X-BeenThere: freebsd-pf@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Technical discussion and general questions about packet filter \(pf\)" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 13 Apr 2009 22:46:40 -0000 i'm tried to reproduce bug with current patch, but it's not reproduced. as i see bug is fixed. thanks. 2009/4/11 Max Laier : > The following reply was made to PR kern/130977; it has been noted by GNAT= S. > > From: Max Laier > To: bug-followup@freebsd.org, > =A0darkibot@gmail.com > Cc: > Subject: Re: kern/130977: [netgraph][pf] kernel panic trap 12 on user con= nect to VPN server > Date: Sat, 11 Apr 2009 01:11:54 +0100 > > =A0--Boundary-00=3D_LB+3JRWytgyQ4AY > =A0Content-Type: text/plain; > =A0 charset=3D"us-ascii" > =A0Content-Transfer-Encoding: 7bit > =A0Content-Disposition: inline > > =A0Here is the MFC patch - if possible, please try and report back. > > =A0-- > =A0 Max > > =A0--Boundary-00=3D_LB+3JRWytgyQ4AY > =A0Content-Type: text/x-patch; > =A0 charset=3D"ISO-8859-1"; > =A0 name=3D"mfc.ifg.patch" > =A0Content-Transfer-Encoding: 7bit > =A0Content-Disposition: attachment; > =A0 =A0 =A0 =A0filename=3D"mfc.ifg.patch" > > =A0Index: sys/net/if.c > =A0=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D > =A0--- sys/net/if.c =A0 =A0 =A0 (revision 190905) > =A0+++ sys/net/if.c =A0 =A0 =A0 (working copy) > =A0@@ -128,6 +128,7 @@ > =A0static void =A0 do_link_state_change(void *, int); > =A0static int =A0 =A0if_getgroup(struct ifgroupreq *, struct ifnet *); > =A0static int =A0 =A0if_getgroupmembers(struct ifgroupreq *); > =A0+static void =A0 if_delgroups(struct ifnet *); > =A0#ifdef INET6 > =A0/* > =A0 * XXX: declare here to avoid to include many inet6 related files.. > =A0@@ -828,6 +829,7 @@ > =A0 =A0 =A0 =A0rt_ifannouncemsg(ifp, IFAN_DEPARTURE); > =A0 =A0 =A0 =A0EVENTHANDLER_INVOKE(ifnet_departure_event, ifp); > =A0 =A0 =A0 =A0devctl_notify("IFNET", ifp->if_xname, "DETACH", NULL); > =A0+ =A0 =A0 =A0if_delgroups(ifp); > > =A0 =A0 =A0 =A0IF_AFDATA_LOCK(ifp); > =A0 =A0 =A0 =A0for (dp =3D domains; dp; dp =3D dp->dom_next) { > =A0@@ -963,6 +965,53 @@ > =A0} > > =A0/* > =A0+ * Remove an interface from all groups > =A0+ */ > =A0+static void > =A0+if_delgroups(struct ifnet *ifp) > =A0+{ > =A0+ =A0 =A0 =A0struct ifg_list =A0 =A0 =A0 =A0 *ifgl; > =A0+ =A0 =A0 =A0struct ifg_member =A0 =A0 =A0 *ifgm; > =A0+ =A0 =A0 =A0char groupname[IFNAMSIZ]; > =A0+ > =A0+ =A0 =A0 =A0IFNET_WLOCK(); > =A0+ =A0 =A0 =A0while (!TAILQ_EMPTY(&ifp->if_groups)) { > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0ifgl =3D TAILQ_FIRST(&ifp->if_groups); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0strlcpy(groupname, ifgl->ifgl_group->ifg_= group, IFNAMSIZ); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0IF_ADDR_LOCK(ifp); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0TAILQ_REMOVE(&ifp->if_groups, ifgl, ifgl_= next); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0IF_ADDR_UNLOCK(ifp); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0TAILQ_FOREACH(ifgm, &ifgl->ifgl_group->if= g_members, ifgm_next) > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0if (ifgm->ifgm_ifp =3D=3D= ifp) > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0break; > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0if (ifgm !=3D NULL) { > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TAILQ_REMOVE(&ifgl->ifgl_= group->ifg_members, ifgm, > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifgm_next); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0free(ifgm, M_TEMP); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0} > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0if (--ifgl->ifgl_group->ifg_refcnt =3D=3D= 0) { > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0TAILQ_REMOVE(&ifg_head, i= fgl->ifgl_group, ifg_next); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0EVENTHANDLER_INVOKE(group= _detach_event, > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0ifgl->ifgl_group)= ; > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0free(ifgl->ifgl_group, M_= TEMP); > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0} > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0IFNET_WUNLOCK(); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0free(ifgl, M_TEMP); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0EVENTHANDLER_INVOKE(group_change_event, g= roupname); > =A0+ > =A0+ =A0 =A0 =A0 =A0 =A0 =A0 =A0IFNET_WLOCK(); > =A0+ =A0 =A0 =A0} > =A0+ =A0 =A0 =A0IFNET_WUNLOCK(); > =A0+} > =A0+ > =A0+/* > =A0 * Stores all groups from an interface in memory pointed > =A0 * to by data > =A0 */ > > =A0--Boundary-00=3D_LB+3JRWytgyQ4AY-- > _______________________________________________ > freebsd-pf@freebsd.org mailing list > http://lists.freebsd.org/mailman/listinfo/freebsd-pf > To unsubscribe, send any mail to "freebsd-pf-unsubscribe@freebsd.org" >