sock: struct proto hash function may error
[cascardo/linux.git] / net / ipv4 / af_inet.c
index 5c5db66..eade66d 100644 (file)
@@ -370,7 +370,11 @@ lookup_protocol:
                 */
                inet->inet_sport = htons(inet->inet_num);
                /* Add to protocol hash chains. */
-               sk->sk_prot->hash(sk);
+               err = sk->sk_prot->hash(sk);
+               if (err) {
+                       sk_common_release(sk);
+                       goto out;
+               }
        }
 
        if (sk->sk_prot->init) {
@@ -1142,8 +1146,7 @@ static int inet_sk_reselect_saddr(struct sock *sk)
         * Besides that, it does not check for connection
         * uniqueness. Wait for troubles.
         */
-       __sk_prot_rehash(sk);
-       return 0;
+       return __sk_prot_rehash(sk);
 }
 
 int inet_sk_rebuild_header(struct sock *sk)