Subject: kern/4190: if_de and bpf can cause kernel panic
To: None <gnats-bugs@gnats.netbsd.org>
From: Matthias Scheler <tron@lyssa.owl.de>
List: netbsd-bugs
Date: 09/30/1997 01:55:27
>Number: 4190
>Category: kern
>Synopsis: if_de and bpf can cause kernel panic
>Confidential: no
>Severity: serious
>Priority: medium
>Responsible: kern-bug-people (Kernel Bug People)
>State: open
>Class: sw-bug
>Submitter-Id: net
>Arrival-Date: Mon Sep 29 17:05:01 1997
>Last-Modified:
>Originator: Matthias Scheler
>Organization:
Mario Kemper Maintenace Project
>Release: 970923
>Environment:
NetBSD colwyn 1.2G NetBSD 1.2G (COLWYN) #1: Tue Sep 30 01:36:42 MEST 1997 tron@colwyn:/home/src/sys/arch/i386/compile/COLWYN i386
>Description:
Under certain conditions "if_de.c" calls bpf_mtap() with a null pointer
as argument for "struct mbuf *m". Because other network interface drivers
seem to share this problem a NULL pointer check in bpf_mtap() is IMHO
the best sollution.
>How-To-Repeat:
Boot a system with two unplugged DEC 21x4x based ethernet cards and start
"dhcpd" via "/etc/rc". The system will panic with a VM fault in "m_xhalf".
>Fix:
*** src/sys/net/bpf.c.orig Mon Mar 17 13:33:08 1997
--- src/sys/net/bpf.c Tue Sep 30 01:36:13 1997
*************** bpf_mtap(arg, m)
*** 1075,1080 ****
--- 1075,1082 ----
size_t pktlen, slen;
struct mbuf *m0;
+ if (m == 0) return;
+
pktlen = 0;
for (m0 = m; m0 != 0; m0 = m0->m_next)
pktlen += m0->m_len;
>Audit-Trail:
>Unformatted: