dccp/tcp: Reset saddr on failure after inet6?_hash_connect().
[platform/kernel/linux-starfive.git] / net / ipv6 / tcp_ipv6.c
index 2a3f929..81b396e 100644 (file)
@@ -359,6 +359,8 @@ static int tcp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 
 late_failure:
        tcp_set_state(sk, TCP_CLOSE);
+       if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK))
+               inet_reset_saddr(sk);
 failure:
        inet->inet_dport = 0;
        sk->sk_route_caps = 0;