NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/50629: netbsd-7 kernel panic
On Mar 11, 7:56am, 6bone%6bone.informatik.uni-leipzig.de@localhost (6bone%6bone.informatik.uni-leipzig.de@localhost) wrote:
-- Subject: Re: kern/50629: netbsd-7 kernel panic
| On Wed, 6 Jan 2016, Christos Zoulas wrote:
|
| > Can you switch to npf? Just curious...
| >
| > christos
|
| The firewall rules are generated by a external script that uses as output
| the ipfilter syntax. Rewriting the script is not possible for me.
|
| The kernel panic is now recurred several times. Can I do something to
| find the problem?
My theory is that some error handling is wrong since it works most of
the time, let's see if any of these triggers...
christos
Index: ip_fil_netbsd.c
===================================================================
RCS file: /cvsroot/src/sys/external/bsd/ipf/netinet/ip_fil_netbsd.c,v
retrieving revision 1.11
diff -u -u -r1.11 ip_fil_netbsd.c
--- ip_fil_netbsd.c 25 Jul 2014 08:10:39 -0000 1.11
+++ ip_fil_netbsd.c 11 Mar 2016 13:33:29 -0000
@@ -1110,6 +1110,7 @@
if ((ifp == NULL) && ((fr == NULL) || !(fr->fr_flags & FR_FASTROUTE))) {
error = -2;
+printf("%d: %p, %p\n", m0, m);
goto bad;
}
@@ -1143,6 +1144,7 @@
else
#endif
error = ENETUNREACH;
+printf("%d: %p, %p\n", m0, m);
goto bad;
}
@@ -1180,6 +1182,7 @@
break;
case -1 :
error = -1;
+printf("%d: %p, %p\n", m0, m);
goto bad;
break;
}
@@ -1223,11 +1226,13 @@
ip_off = ntohs(ip->ip_off);
if (ip_off & IP_DF) {
error = EMSGSIZE;
+printf("%d: %p, %p\n", m0, m);
goto bad;
}
len = (ifp->if_mtu - hlen) &~ 7;
if (len < 8) {
error = EMSGSIZE;
+printf("%d: %p, %p\n", m0, m);
goto bad;
}
@@ -1250,6 +1255,7 @@
if (m == 0) {
m = m0;
error = ENOBUFS;
+printf("%d: %p, %p\n", m0, m);
goto bad;
}
m->m_data += max_linkhdr;
@@ -1271,6 +1277,7 @@
m->m_next = m_copy(m0, off, len);
if (m->m_next == 0) {
error = ENOBUFS; /* ??? */
+printf("%d: %p, %p\n", m0, m);
goto sendorfree;
}
m->m_pkthdr.len = mhlen + len;
Home |
Main Index |
Thread Index |
Old Index