Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / net / ipv4 / inet_hashtables.c
index ee9b551..1de3906 100644 (file)
@@ -139,11 +139,10 @@ struct sock *__inet_lookup_listener(const struct hlist_head *head, const u32 dad
                        const __u32 rcv_saddr = inet->rcv_saddr;
                        int score = sk->sk_family == PF_INET ? 1 : 0;
 
-                       if (rcv_saddr) {
-                               if (rcv_saddr != daddr)
-                                       continue;
+                       if (inet_addr_match(sk->sk_nx_info, daddr, rcv_saddr))
                                score += 2;
-                       }
+                       else
+                               continue;
                        if (sk->sk_bound_dev_if) {
                                if (sk->sk_bound_dev_if != dif)
                                        continue;