Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 28 Jan 2004 21:35:09 +0100
From:      Max Laier <max@love2party.net>
To:        Andre Oppermann <andre@freebsd.org>, sebastian ssmoller <sebastian.ssmoller@gmx.net>
Cc:        current@freebsd.org
Subject:   Re: panic: m_copm, length > size of mbuf chain
Message-ID:  <200401282135.09635.max@love2party.net>
In-Reply-To: <40151474.8010406@freebsd.org>
References:  <20040125203456.7bfaa67b.sebastian.ssmoller@gmx.net> <40151474.8010406@freebsd.org>

next in thread | previous in thread | raw e-mail | index | archive | help

--Boundary-00=_9zBGANaQRQTtRsj
Content-Type: text/plain;
  charset="iso-8859-1"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

On Monday 26 January 2004 14:21, Andre Oppermann wrote:
> sebastian ssmoller wrote:
> > hi,
> > my system ran stable for several days now but suddenly this error
> > occured. At this moment i did nothing special - just surfing the net
> > ...
> >
> > cause i have no serial line attached i could only get the following
> > infos: Debugger(...) at Debugger+0x54
> > panic(...) at panic+0xd5
> > m_copym(...)
> > ip_fragment(...)
> > ip_output(...)
> > ip_forward(...)
> >
> > i didnt want to write down all these numbers(addresses) by hand,
> > should i ?
> >
> > it seems to have to do something with inet/ip so i possibly should
> > mention that i disabled "option inet6" in kernel and that i use "pf"
> > as packet filter.
> >
> > $ uname -a
> > FreeBSD tyrael.linnet 5.2-CURRENT FreeBSD 5.2-CURRENT #2: Mon Jan 19
> > 22:26:43 CET 2004    
> > root@tyrael.linnet:/usr/obj/usr/src-current/sys/DEBUG  i386
> >
> > i can provide more info if needed...
>
> This looks like a host/network byte order problem in relation with the
> 'pf' packet filter.  ip_output() expects the ip_off field to be in host
> byte order.  If this is not the case you will get bogus length values
> for fragmentation.

Anybody else seeing this?

Can you please try attached patch against pf_ioctl.c (for convenience just 
to throw into security/pf/files) and report success/failure.

-- 
Best regards,				| max@love2party.net
Max Laier				| ICQ #67774661
http://pf4freebsd.love2party.net/	| mlaier@EFnet

--Boundary-00=_9zBGANaQRQTtRsj
Content-Type: text/x-diff;
  charset="iso-8859-1";
  name="patch-ac"
Content-Transfer-Encoding: 7bit
Content-Disposition: attachment;
	filename="patch-ac"

--- pf/pf_ioctl.c.orig	Wed Jan 28 21:10:33 2004
+++ pf/pf_ioctl.c	Wed Jan 28 21:12:39 2004
@@ -2963,6 +2963,8 @@
 		*m = NULL;
 	}
 	if (*m != NULL) {
+		/* pf_test can change ip header location */
+		h = mtod(*m, struct ip *);
 		NTOHS(h->ip_len);
 		NTOHS(h->ip_off);
 	}
@@ -3004,6 +3006,8 @@
 		*m = NULL;
 	}
 	if (*m != NULL) {
+		/* pf_test can change ip header location */
+		h = mtod(*m, struct ip *);
 		NTOHS(h->ip_len);
 		NTOHS(h->ip_off);
 	}

--Boundary-00=_9zBGANaQRQTtRsj--



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