Re: [URGENT ASSISTANCE REQUESTED] production machines dying

David S. Miller (davem@dm.cobaltmicro.com)
Mon, 24 Nov 1997 13:34:05 -0800


Date: Mon, 24 Nov 1997 14:41:04 -0600 (CST)
From: Thomas Schenk <tschenk@dejanews.com>

On 24-Nov-97 Dr. Werner Fink wrote:
>
> Which kernel version is used?

Sorry. 2.0.31 with inode patch.

You might be getting hit by the IP fragmentation (so called
"teardrop") bug, upgrade to 2.0.32 to get that fixed or just apply the
following patch which is the bugfix by itself.

Also note that the magic number you forgot it extremely important to
report _always_. We output it for a reason, because with it you can
look up where the kernel has died in your System.map file and let us
know what that location is.

diff -u --recursive --new-file v2.0.31/linux/net/ipv4/ip_fragment.c linux/net/ipv4/ip_fragment.c
--- v2.0.31/linux/net/ipv4/ip_fragment.c Tue Aug 12 11:30:25 1997
+++ linux/net/ipv4/ip_fragment.c Thu Nov 13 05:58:30 1997
@@ -375,7 +375,7 @@
fp = qp->fragments;
while(fp != NULL)
{
- if(count+fp->len > skb->len)
+ if (fp->len < 0 || count+fp->len > skb->len)
{
NETDEBUG(printk("Invalid fragment list: Fragment over size.\n"));
ip_free(qp);