|
@@ -476,7 +476,7 @@ static int tcp_v6_send_synack(struct sock *sk, struct request_sock *req)
|
|
fl.fl6_flowlabel = 0;
|
|
fl.fl6_flowlabel = 0;
|
|
fl.oif = treq->iif;
|
|
fl.oif = treq->iif;
|
|
fl.fl_ip_dport = inet_rsk(req)->rmt_port;
|
|
fl.fl_ip_dport = inet_rsk(req)->rmt_port;
|
|
- fl.fl_ip_sport = inet_sk(sk)->sport;
|
|
|
|
|
|
+ fl.fl_ip_sport = inet_rsk(req)->loc_port;
|
|
security_req_classify_flow(req, &fl);
|
|
security_req_classify_flow(req, &fl);
|
|
|
|
|
|
opt = np->opt;
|
|
opt = np->opt;
|
|
@@ -1309,7 +1309,7 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
|
|
ipv6_addr_copy(&fl.fl6_src, &treq->loc_addr);
|
|
ipv6_addr_copy(&fl.fl6_src, &treq->loc_addr);
|
|
fl.oif = sk->sk_bound_dev_if;
|
|
fl.oif = sk->sk_bound_dev_if;
|
|
fl.fl_ip_dport = inet_rsk(req)->rmt_port;
|
|
fl.fl_ip_dport = inet_rsk(req)->rmt_port;
|
|
- fl.fl_ip_sport = inet_sk(sk)->sport;
|
|
|
|
|
|
+ fl.fl_ip_sport = inet_rsk(req)->loc_port;
|
|
security_req_classify_flow(req, &fl);
|
|
security_req_classify_flow(req, &fl);
|
|
|
|
|
|
if (ip6_dst_lookup(sk, &dst, &fl))
|
|
if (ip6_dst_lookup(sk, &dst, &fl))
|
|
@@ -1865,7 +1865,7 @@ static void get_openreq6(struct seq_file *seq,
|
|
i,
|
|
i,
|
|
src->s6_addr32[0], src->s6_addr32[1],
|
|
src->s6_addr32[0], src->s6_addr32[1],
|
|
src->s6_addr32[2], src->s6_addr32[3],
|
|
src->s6_addr32[2], src->s6_addr32[3],
|
|
- ntohs(inet_sk(sk)->sport),
|
|
|
|
|
|
+ ntohs(inet_rsk(req)->loc_port),
|
|
dest->s6_addr32[0], dest->s6_addr32[1],
|
|
dest->s6_addr32[0], dest->s6_addr32[1],
|
|
dest->s6_addr32[2], dest->s6_addr32[3],
|
|
dest->s6_addr32[2], dest->s6_addr32[3],
|
|
ntohs(inet_rsk(req)->rmt_port),
|
|
ntohs(inet_rsk(req)->rmt_port),
|