aboutsummaryrefslogtreecommitdiffstats
path: root/net/ipv6/tcp_ipv6.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/ipv6/tcp_ipv6.c')
-rw-r--r--net/ipv6/tcp_ipv6.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/net/ipv6/tcp_ipv6.c b/net/ipv6/tcp_ipv6.c
index 321aafd40dcb..451763059142 100644
--- a/net/ipv6/tcp_ipv6.c
+++ b/net/ipv6/tcp_ipv6.c
@@ -226,10 +226,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
226#endif 226#endif
227 goto failure; 227 goto failure;
228 } else { 228 } else {
229 ipv6_addr_set(&np->saddr, 0, 0, htonl(0x0000FFFF), 229 ipv6_addr_set_v4mapped(inet->saddr, &np->saddr);
230 inet->saddr); 230 ipv6_addr_set_v4mapped(inet->rcv_saddr, &np->rcv_saddr);
231 ipv6_addr_set(&np->rcv_saddr, 0, 0, htonl(0x0000FFFF),
232 inet->rcv_saddr);
233 } 231 }
234 232
235 return err; 233 return err;
@@ -1293,11 +1291,9 @@ static struct sock * tcp_v6_syn_recv_sock(struct sock *sk, struct sk_buff *skb,
1293 1291
1294 memcpy(newnp, np, sizeof(struct ipv6_pinfo)); 1292 memcpy(newnp, np, sizeof(struct ipv6_pinfo));
1295 1293
1296 ipv6_addr_set(&newnp->daddr, 0, 0, htonl(0x0000FFFF), 1294 ipv6_addr_set_v4mapped(newinet->daddr, &newnp->daddr);
1297 newinet->daddr);
1298 1295
1299 ipv6_addr_set(&newnp->saddr, 0, 0, htonl(0x0000FFFF), 1296 ipv6_addr_set_v4mapped(newinet->saddr, &newnp->saddr);
1300 newinet->saddr);
1301 1297
1302 ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr); 1298 ipv6_addr_copy(&newnp->rcv_saddr, &newnp->saddr);
1303 1299