dccp/tcp: Reset saddr on failure after inet6?_hash_connect().
[platform/kernel/linux-starfive.git] / net / dccp / ipv6.c
index e57b430..626166c 100644 (file)
@@ -985,6 +985,8 @@ static int dccp_v6_connect(struct sock *sk, struct sockaddr *uaddr,
 
 late_failure:
        dccp_set_state(sk, DCCP_CLOSED);
+       if (!(sk->sk_userlocks & SOCK_BINDADDR_LOCK))
+               inet_reset_saddr(sk);
        __sk_dst_reset(sk);
 failure:
        inet->inet_dport = 0;