Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files. =================================================================== RCS file: /ftp/cvs/cvsroot/src/sys/kern/uipc_socket.c,v retrieving revision 1.114 retrieving revision 1.115 diff -u -p -r1.114 -r1.115 --- src/sys/kern/uipc_socket.c 2005/12/11 12:24:30 1.114 +++ src/sys/kern/uipc_socket.c 2005/12/27 00:00:29 1.115 @@ -1,4 +1,4 @@ -/* $NetBSD: uipc_socket.c,v 1.114 2005/12/11 12:24:30 christos Exp $ */ +/* $NetBSD: uipc_socket.c,v 1.115 2005/12/27 00:00:29 yamt Exp $ */ /*- * Copyright (c) 2002 The NetBSD Foundation, Inc. @@ -68,7 +68,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.114 2005/12/11 12:24:30 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: uipc_socket.c,v 1.115 2005/12/27 00:00:29 yamt Exp $"); #include "opt_sock_counters.h" #include "opt_sosend_loan.h" @@ -453,10 +453,9 @@ socreate(int dom, struct socket **aso, i { const struct protosw *prp; struct socket *so; - struct proc *p; + uid_t uid; int error, s; - p = l->l_proc; if (proto) prp = pffindproto(dom, proto, type); else @@ -479,10 +478,12 @@ socreate(int dom, struct socket **aso, i so->so_snd.sb_mowner = &prp->pr_domain->dom_mowner; so->so_mowner = &prp->pr_domain->dom_mowner; #endif - if (p != 0) - so->so_uidinfo = uid_find(p->p_ucred->cr_uid); - else - so->so_uidinfo = uid_find(0); + if (l != NULL) { + uid = l->l_proc->p_ucred->cr_uid; + } else { + uid = 0; + } + so->so_uidinfo = uid_find(uid); error = (*prp->pr_usrreq)(so, PRU_ATTACH, (struct mbuf *)0, (struct mbuf *)(long)proto, (struct mbuf *)0, l); if (error) {