patch-2.0.24 linux/drivers/net/slhc.c
Next file: linux/drivers/net/tulip.c
Previous file: linux/drivers/net/ni65.h
Back to the patch index
Back to the overall index
- Lines: 28
- Date:
Wed Oct 30 03:42:41 1996
- Orig file:
v2.0.23/linux/drivers/net/slhc.c
- Orig date:
Tue Jun 25 12:03:29 1996
diff -u --recursive --new-file v2.0.23/linux/drivers/net/slhc.c linux/drivers/net/slhc.c
@@ -246,6 +246,14 @@
struct iphdr *ip;
struct tcphdr *th, *oth;
+
+ /*
+ * Don't play with runt packets.
+ */
+
+ if(isize<sizeof(struct iphdr))
+ return isize;
+
ip = (struct iphdr *) icp;
/* Bail if this packet isn't TCP, or is an IP fragment */
@@ -264,9 +272,10 @@
hlen = ip->ihl*4 + th->doff*4;
/* Bail if the TCP packet isn't `compressible' (i.e., ACK isn't set or
- * some other control bit is set).
+ * some other control bit is set). Also uncompressible if
+ * its a runt.
*/
- if(th->syn || th->fin || th->rst ||
+ if(hlen > isize || th->syn || th->fin || th->rst ||
! (th->ack)){
/* TCP connection stuff; send as regular IP */
comp->sls_o_tcp++;
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov