[REPOST] Patch for ping 65510 problem.

Philippe Strauss (philou@sicel-home-1-4.urbanet.ch)
Sun, 20 Oct 1996 17:43:30 +0200 (MET DST)


It seems that a lot of peoples have missed the fix posted
by Alan Cox for the oversized icmp packet. Here it is.
It against 2.0.22, but works against 2.1.5, 2.0.23 and others.

cd /usr/src/linux/net/ipv4; cat <wherever_it_is>/frag_patch | patch -p0

Message-Id: <m0vEOvO-0005FbC@lightning.swansea.linux.org.uk>
Date: Sat, 19 Oct 96 01:05 BST
From: alan@lxorguk.ukuu.org.uk (Alan Cox)
To: linux-kernel, linux-net
Subject: Untested but this should fix the problem with oversize packets

--- ip_fragment.c.old Mon Sep 16 22:14:52 1996
+++ ip_fragment.c Sat Oct 19 01:04:47 1996
@@ -366,7 +366,7 @@
{
NETDEBUG(printk("Invalid fragment list: Fragment over size.\n"));
ip_free(qp);
- frag_kfree_skb(skb,FREE_WRITE);
+ kfree_skb(skb,FREE_WRITE);
ip_statistics.IpReasmFails++;
return NULL;
}
@@ -466,6 +466,18 @@
return NULL;
}
}
+
+ /*
+ * Attempt to construct an oversize packet.
+ */
+
+ if(ntohs(iph->tot_len)+(int)offset>65535)
+ {
+ skb->sk = NULL;
+ frag_kfree_skb(skb, FREE_READ);
+ ip_statistics.IpReasmFails++;
+ return NULL;
+ }

/*
* Determine the position of this fragment.

-- 
Philippe Strauss, CH-1092 Belmont

Email: <philippe.strauss@urbanet.ch> Homepage: http://sicel-home-1-4.urbanet.ch