tech-net archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

kauth and socket calls (esp. bind())



According to kauth(9):

             Listeners might sleep, so no locks can be held when calling
             an authorization wrapper.

According to uipc_socket.c:sobind():

             solock(so);
             error = (*so->so_proto->pr_usrreq)(so, PRU_BIND, NULL, nam,
                      NULL, l);
             sounlock(so);

According to in_pcb.c:in_pcbbind():

             kauth_authorize_network(cred, KAUTH_NETWORK_BIND,
                                     KAUTH_REQ_NETWORK_BIND_PRIVPORT, so,
                                     sin, NULL)

Um.  Is it the documentation or the code which should be corrected?

I'm not sure I grasp how things like the filesystem or device scopes could
even really work if you can't make kauth calls with locks held.

-- 
Thor Lancelot Simon                                    
tls%rek.tjls.com@localhost
  "All of my opinions are consistent, but I cannot present them all
   at once."    -Jean-Jacques Rousseau, On The Social Contract


Home | Main Index | Thread Index | Old Index