diff options
author | Florian Westphal <fw@strlen.de> | 2008-07-26 05:21:54 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-07-26 05:21:54 -0400 |
commit | 16df845f4566bc252f3e09db12f5c2f22cb44226 (patch) | |
tree | c83f5b664b669ff26bbf5c9a44b9ccecfa53c506 /net | |
parent | ec34c702ca8b7d6f0aa54379c3b0d0ec10b8ff23 (diff) |
syncookies: Make sure ECN is disabled
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>
Diffstat (limited to 'net')
-rw-r--r-- | net/ipv4/syncookies.c | 1 | ||||
-rw-r--r-- | net/ipv6/syncookies.c | 1 |
2 files changed, 2 insertions, 0 deletions
diff --git a/net/ipv4/syncookies.c b/net/ipv4/syncookies.c index 51bc24d3b8a7..9d38005abbac 100644 --- a/net/ipv4/syncookies.c +++ b/net/ipv4/syncookies.c | |||
@@ -299,6 +299,7 @@ struct sock *cookie_v4_check(struct sock *sk, struct sk_buff *skb, | |||
299 | ireq->rmt_port = th->source; | 299 | ireq->rmt_port = th->source; |
300 | ireq->loc_addr = ip_hdr(skb)->daddr; | 300 | ireq->loc_addr = ip_hdr(skb)->daddr; |
301 | ireq->rmt_addr = ip_hdr(skb)->saddr; | 301 | ireq->rmt_addr = ip_hdr(skb)->saddr; |
302 | ireq->ecn_ok = 0; | ||
302 | ireq->snd_wscale = tcp_opt.snd_wscale; | 303 | ireq->snd_wscale = tcp_opt.snd_wscale; |
303 | ireq->rcv_wscale = tcp_opt.rcv_wscale; | 304 | ireq->rcv_wscale = tcp_opt.rcv_wscale; |
304 | ireq->sack_ok = tcp_opt.sack_ok; | 305 | ireq->sack_ok = tcp_opt.sack_ok; |
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c index 6a68eeb7bbf8..a46badd1082d 100644 --- a/net/ipv6/syncookies.c +++ b/net/ipv6/syncookies.c | |||
@@ -223,6 +223,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb) | |||
223 | 223 | ||
224 | req->expires = 0UL; | 224 | req->expires = 0UL; |
225 | req->retrans = 0; | 225 | req->retrans = 0; |
226 | ireq->ecn_ok = 0; | ||
226 | ireq->snd_wscale = tcp_opt.snd_wscale; | 227 | ireq->snd_wscale = tcp_opt.snd_wscale; |
227 | ireq->rcv_wscale = tcp_opt.rcv_wscale; | 228 | ireq->rcv_wscale = tcp_opt.rcv_wscale; |
228 | ireq->sack_ok = tcp_opt.sack_ok; | 229 | ireq->sack_ok = tcp_opt.sack_ok; |