it looks like a pointer stored without holding a reference
for the source code  in kernel version v4.14.88, and the fuction is : 
ipxitf_insert_socket

static void ipxitf_insert_socket(struct ipx_interface *intrfc, struct sock *sk)
{       ipxitf_hold(intrfc);
        spin_lock_bh(&intrfc->if_sklist_lock);
        ipx_sk(sk)->intrfc = intrfc;
        sk_add_node(sk, &intrfc->if_sklist);
        spin_unlock_bh(&intrfc->if_sklist_lock);
        ipxitf_put(intrfc);
}

it assigned the pointer `intrfc` to `sk->intrfc`,  but didn't hold a reference 
for this pointer.
it looks like a bug.....if not ,could you please explain the meaning of it?
thanks a lot!






 



 

Reply via email to