Message ID | 508E9B3D.1050505@parallels.com |
---|---|
State | Accepted, archived |
Delegated to: | David Miller |
Headers | show |
From: Pavel Emelyanov <xemul@parallels.com> Date: Mon, 29 Oct 2012 19:05:33 +0400 > When sending data into a tcp socket in repair state we should check > for the amount of data being 0 explicitly. Otherwise we'll have an skb > with seq == end_seq in rcv queue, but tcp doesn't expect this to happen > (in particular a warn_on in tcp_recvmsg shoots). > > Signed-off-by: Pavel Emelyanov <xemul@parallels.com> > Reported-by: Giorgos Mavrikas <gmavrikas@gmail.com> Applied, thanks. > From 8f70f4ea4f509a3772ee7eb5d9d5c2571a86652a Mon Sep 17 00:00:00 2001 > From: Pavel Emelyanov <xemul@parallels.com> > Date: Mon, 29 Oct 2012 18:12:41 +0400 > Subject: [PATCH] fix for repair queue getback > > Signed-off-by: Pavel Emelyanov <xemul@parallels.com> What is this? -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On 11/03/2012 06:02 AM, David Miller wrote: > From: Pavel Emelyanov <xemul@parallels.com> > Date: Mon, 29 Oct 2012 19:05:33 +0400 > >> When sending data into a tcp socket in repair state we should check >> for the amount of data being 0 explicitly. Otherwise we'll have an skb >> with seq == end_seq in rcv queue, but tcp doesn't expect this to happen >> (in particular a warn_on in tcp_recvmsg shoots). >> >> Signed-off-by: Pavel Emelyanov <xemul@parallels.com> >> Reported-by: Giorgos Mavrikas <gmavrikas@gmail.com> > > Applied, thanks. > >> From 8f70f4ea4f509a3772ee7eb5d9d5c2571a86652a Mon Sep 17 00:00:00 2001 >> From: Pavel Emelyanov <xemul@parallels.com> >> Date: Mon, 29 Oct 2012 18:12:41 +0400 >> Subject: [PATCH] fix for repair queue getback >> >> Signed-off-by: Pavel Emelyanov <xemul@parallels.com> > > What is this? It's a garbage left after patches rebase and resplit. Sorry for that :( > -- > To unsubscribe from this list: send the line "unsubscribe netdev" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/net/ipv4/tcp_input.c b/net/ipv4/tcp_input.c index 432c366..ff5b746 100644 --- a/net/ipv4/tcp_input.c +++ b/net/ipv4/tcp_input.c @@ -4529,6 +4529,9 @@ int tcp_send_rcvq(struct sock *sk, struct msghdr *msg, size_t size) struct tcphdr *th; bool fragstolen; + if (size == 0) + return 0; + skb = alloc_skb(size + sizeof(*th), sk->sk_allocation); if (!skb) goto err;