svn commit: r246245 - head/sys/netgraph
Mark Johnston
markj at freebsd.org
Mon Feb 4 02:37:41 UTC 2013
On Sat, Feb 02, 2013 at 11:54:00AM +0000, Andriy Gapon wrote:
> Author: avg
> Date: Sat Feb 2 11:54:00 2013
> New Revision: 246245
> URL: http://svnweb.freebsd.org/changeset/base/246245
>
> Log:
> ng_ether: track interface renaming
>
> Also sanitize interface names that can potentially contain characters
> that are prohibited in netgraph names.
>
> PR: kern/154850 (sanitizing of names)
> Discussed with: eri, melifaro
> Submitted by: Nikolay Denev <ndenev at gmail.com> (sanitizing code)
> Reviewed by: eri, glebius
> MFC after: 17 days
>
> Modified:
> head/sys/netgraph/ng_ether.c
>
Hi Andriy,
This commit seems to cause a panic during boot when creating the
loopback interface. I couldn't get a core dump but the problem seems to
happen when dereferencing ifp->if_l2com in the IFP2NG macro in
ng_ether_ifnet_arrival_event(). In the case of lo(4) this pointer seems
to be NULL (I suppose because lo(4) doesn't register itself in the
if_com_alloc/free tables).
The patch below fixes the panic for me.
Thanks,
-Mark
diff --git a/sys/netgraph/ng_ether.c b/sys/netgraph/ng_ether.c
index 6266f40..f566346 100644
--- a/sys/netgraph/ng_ether.c
+++ b/sys/netgraph/ng_ether.c
@@ -410,7 +410,12 @@ static void
ng_ether_ifnet_arrival_event(void *arg __unused, struct ifnet *ifp)
{
char name[IFNAMSIZ];
- node_p node = IFP2NG(ifp);
+ node_p node;
+
+ if (ifp->if_l2com == NULL)
+ return;
+
+ node = IFP2NG(ifp);
/*
* Just return if it's a new interface without an ng_ether companion.
More information about the svn-src-all
mailing list