| version 1.124, 2006/10/02 09:22:34 |
version 1.125, 2006/10/03 11:15:04 |
| Line 506 socreate(int dom, struct socket **aso, i |
|
| Line 506 socreate(int dom, struct socket **aso, i |
|
| #endif |
#endif |
| if (l != NULL) { |
if (l != NULL) { |
| uid = kauth_cred_geteuid(l->l_cred); |
uid = kauth_cred_geteuid(l->l_cred); |
| kauth_cred_hold(l->l_cred); |
|
| so->so_cred = l->l_cred; |
|
| } else { |
} else { |
| uid = 0; |
uid = 0; |
| so->so_cred = NULL; |
|
| } |
} |
| so->so_uidinfo = uid_find(uid); |
so->so_uidinfo = uid_find(uid); |
| error = (*prp->pr_usrreq)(so, PRU_ATTACH, (struct mbuf *)0, |
error = (*prp->pr_usrreq)(so, PRU_ATTACH, (struct mbuf *)0, |
| Line 722 sodisconnect(struct socket *so) |
|
| Line 719 sodisconnect(struct socket *so) |
|
| int s, error; |
int s, error; |
| |
|
| s = splsoftnet(); |
s = splsoftnet(); |
| if (so->so_cred != NULL) |
|
| kauth_cred_free(so->so_cred); |
|
| if ((so->so_state & SS_ISCONNECTED) == 0) { |
if ((so->so_state & SS_ISCONNECTED) == 0) { |
| error = ENOTCONN; |
error = ENOTCONN; |
| goto bad; |
goto bad; |