| From d1ad459db7eafccbc12418aac875826c0a1d2612 Mon Sep 17 00:00:00 2001 |
| From: Florian Westphal <fw@strlen.de> |
| Date: Sat, 26 Jul 2008 02:21:54 -0700 |
| Subject: syncookies: Make sure ECN is disabled |
| Message-Id: <20080805.164947.158498047.davem@davemloft.net> |
| |
| From: Florian Westphal <fw@strlen.de> |
| |
| [ Upstream commit 16df845f4566bc252f3e09db12f5c2f22cb44226 ] |
| |
| ecn_ok is not initialized when a connection is established by cookies. |
| The cookie syn-ack never sets ECN, so ecn_ok must be set to 0. |
| |
| Spotted using ns-3/network simulation cradle simulator and valgrind. |
| |
| Signed-off-by: Florian Westphal <fw@strlen.de> |
| Signed-off-by: David S. Miller <davem@davemloft.net> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| net/ipv4/syncookies.c | 1 + |
| net/ipv6/syncookies.c | 1 + |
| 2 files changed, 2 insertions(+) |
| |
| --- a/net/ipv4/syncookies.c |
| +++ b/net/ipv4/syncookies.c |
| @@ -301,6 +301,7 @@ struct sock *cookie_v4_check(struct sock |
| ireq->rmt_port = th->source; |
| ireq->loc_addr = ip_hdr(skb)->daddr; |
| ireq->rmt_addr = ip_hdr(skb)->saddr; |
| + ireq->ecn_ok = 0; |
| ireq->snd_wscale = tcp_opt.snd_wscale; |
| ireq->rcv_wscale = tcp_opt.rcv_wscale; |
| ireq->sack_ok = tcp_opt.sack_ok; |
| --- a/net/ipv6/syncookies.c |
| +++ b/net/ipv6/syncookies.c |
| @@ -223,6 +223,7 @@ struct sock *cookie_v6_check(struct sock |
| |
| req->expires = 0UL; |
| req->retrans = 0; |
| + ireq->ecn_ok = 0; |
| ireq->snd_wscale = tcp_opt.snd_wscale; |
| ireq->rcv_wscale = tcp_opt.rcv_wscale; |
| ireq->sack_ok = tcp_opt.sack_ok; |