aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/ipv6/syncookies.c1
-rw-r--r--net/ipv6/tcp_ipv6.c6
2 files changed, 4 insertions, 3 deletions
diff --git a/net/ipv6/syncookies.c b/net/ipv6/syncookies.c
index ec394cf5a19b..676c80b5b14b 100644
--- a/net/ipv6/syncookies.c
+++ b/net/ipv6/syncookies.c
@@ -204,6 +204,7 @@ struct sock *cookie_v6_check(struct sock *sk, struct sk_buff *skb)
204 204
205 req->mss = mss; 205 req->mss = mss;
206 ireq->rmt_port = th->source; 206 ireq->rmt_port = th->source;
207 ireq->loc_port = th->dest;
207 ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr); 208 ipv6_addr_copy(&ireq6->rmt_addr, &ipv6_hdr(skb)->saddr);
208 ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr); 209 ipv6_addr_copy(&ireq6->loc_addr, &ipv6_hdr(skb)->daddr);
209 if (ipv6_opt_accepted(sk, skb) || 210 if (ipv6_opt_accepted(sk, skb) ||
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index e5310c9b84dc..b6b356b7912a 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -476,7 +476,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req)
476 fl.fl6_flowlabel = 0; 476 fl.fl6_flowlabel = 0;
477 fl.oif = treq->iif; 477 fl.oif = treq->iif;
478 fl.fl_ip_dport = inet_rsk(req)->rmt_port; 478 fl.fl_ip_dport = inet_rsk(req)->rmt_port;
479 fl.fl_ip_sport = inet_sk(sk)->sport; 479 fl.fl_ip_sport = inet_rsk(req)->loc_port;
480 security_req_classify_flow(req, &fl); 480 security_req_classify_flow(req, &fl);
481 481
482 opt = np->opt; 482 opt = np->opt;
@@ -1309,7 +1309,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
1309 ipv6_addr_copy(&fl.fl6_src, &treq->loc_addr); 1309 ipv6_addr_copy(&fl.fl6_src, &treq->loc_addr);
1310 fl.oif = sk->sk_bound_dev_if; 1310 fl.oif = sk->sk_bound_dev_if;
1311 fl.fl_ip_dport = inet_rsk(req)->rmt_port; 1311 fl.fl_ip_dport = inet_rsk(req)->rmt_port;
1312 fl.fl_ip_sport = inet_sk(sk)->sport; 1312 fl.fl_ip_sport = inet_rsk(req)->loc_port;
1313 security_req_classify_flow(req, &fl); 1313 security_req_classify_flow(req, &fl);
1314 1314
1315 if (ip6_dst_lookup(sk, &dst, &fl)) 1315 if (ip6_dst_lookup(sk, &dst, &fl))
@@ -1865,7 +1865,7 @@ static void get_openreq6(struct seq_file *seq,
1865 i, 1865 i,
1866 src->s6_addr32[0], src->s6_addr32[1], 1866 src->s6_addr32[0], src->s6_addr32[1],
1867 src->s6_addr32[2], src->s6_addr32[3], 1867 src->s6_addr32[2], src->s6_addr32[3],
1868 ntohs(inet_sk(sk)->sport), 1868 ntohs(inet_rsk(req)->loc_port),
1869 dest->s6_addr32[0], dest->s6_addr32[1], 1869 dest->s6_addr32[0], dest->s6_addr32[1],
1870 dest->s6_addr32[2], dest->s6_addr32[3], 1870 dest->s6_addr32[2], dest->s6_addr32[3],
1871 ntohs(inet_rsk(req)->rmt_port), 1871 ntohs(inet_rsk(req)->rmt_port),