patch-2.0.24 linux/net/ipv4/icmp.c
Next file: linux/net/ipv4/igmp.c
Previous file: linux/net/ipv4/arp.c
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Wed Oct 30 03:42:42 1996
- Orig file:
v2.0.23/linux/net/ipv4/icmp.c
- Orig date:
Tue Oct 8 21:20:14 1996
diff -u --recursive --new-file v2.0.23/linux/net/ipv4/icmp.c linux/net/ipv4/icmp.c
@@ -282,11 +282,11 @@
{ ENONET, 1 }, /* ICMP_HOST_ISOLATED */
{ ENETUNREACH, 1 }, /* ICMP_NET_ANO */
{ EHOSTUNREACH, 1 }, /* ICMP_HOST_ANO */
- { EOPNOTSUPP, 0 }, /* ICMP_NET_UNR_TOS */
- { EOPNOTSUPP, 0 }, /* ICMP_HOST_UNR_TOS */
- { EOPNOTSUPP, 1 }, /* ICMP_PKT_FILTERED */
- { EOPNOTSUPP, 1 }, /* ICMP_PREC_VIOLATION */
- { EOPNOTSUPP, 1 } /* ICMP_PREC_CUTOFF */
+ { ENETUNREACH, 0 }, /* ICMP_NET_UNR_TOS */
+ { EHOSTUNREACH, 0 }, /* ICMP_HOST_UNR_TOS */
+ { EHOSTUNREACH, 1 }, /* ICMP_PKT_FILTERED */
+ { EHOSTUNREACH, 1 }, /* ICMP_PREC_VIOLATION */
+ { EHOSTUNREACH, 1 } /* ICMP_PREC_CUTOFF */
};
/*
@@ -1030,6 +1030,14 @@
int r;
#endif
icmp_statistics.IcmpInMsgs++;
+
+ if(len < sizeof(struct icmphdr))
+ {
+ icmp_statistics.IcmpInErrors++;
+ printk(KERN_INFO "ICMP: runt packet\n");
+ kfree_skb(skb, FREE_READ);
+ return 0;
+ }
/*
* Validate the packet
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov