patch-2.0.26 linux/net/ipv4/tcp.c
Next file: linux/net/ipv4/tcp_input.c
Previous file: linux/net/ipv4/ipmr.c
Back to the patch index
Back to the overall index
- Lines: 29
- Date:
Thu Nov 14 20:56:46 1996
- Orig file:
v2.0.25/linux/net/ipv4/tcp.c
- Orig date:
Wed Nov 13 11:26:24 1996
diff -u --recursive --new-file v2.0.25/linux/net/ipv4/tcp.c linux/net/ipv4/tcp.c
@@ -502,7 +502,7 @@
*/
void tcp_err(int type, int code, unsigned char *header, __u32 daddr,
- __u32 saddr, struct inet_protocol *protocol)
+ __u32 saddr, struct inet_protocol *protocol, int len)
{
struct tcphdr *th = (struct tcphdr *)header;
struct sock *sk;
@@ -514,6 +514,10 @@
struct iphdr *iph=(struct iphdr *)(header-sizeof(struct iphdr));
#endif
th =(struct tcphdr *)header;
+
+ if(len<sizeof(struct tcphdr))
+ return;
+
sk = get_sock(&tcp_prot, th->source, daddr, th->dest, saddr, 0, 0);
if (sk == NULL)
@@ -1420,6 +1424,8 @@
if (copied)
break;
copied = -ERESTARTSYS;
+ if (nonblock)
+ copied = -EAGAIN;
break;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov