net: ipv6: reset daddr and dport in sk if connect() fails
[sfrench/cifs-2.6.git] / net / ipv6 / udp.c
index 06ec39b796092ad5e8954c0cfd10e75205ffce54..75703fda23e7703b0df9f379d48208c0bf202c69 100644 (file)
@@ -879,7 +879,8 @@ static struct sock *__udp6_lib_demux_lookup(struct net *net,
        struct sock *sk;
 
        udp_portaddr_for_each_entry_rcu(sk, &hslot2->head) {
-               if (INET6_MATCH(sk, net, rmt_addr, loc_addr, ports, dif))
+               if (sk->sk_state == TCP_ESTABLISHED &&
+                   INET6_MATCH(sk, net, rmt_addr, loc_addr, ports, dif))
                        return sk;
                /* Only check first socket in chain */
                break;