diff options
-rw-r--r-- | sys/kern/kern_loginclass.c | 18 |
1 files changed, 4 insertions, 14 deletions
diff --git a/sys/kern/kern_loginclass.c b/sys/kern/kern_loginclass.c index 92eb3cf..c0946ef 100644 --- a/sys/kern/kern_loginclass.c +++ b/sys/kern/kern_loginclass.c @@ -178,24 +178,14 @@ struct getloginclass_args { int sys_getloginclass(struct thread *td, struct getloginclass_args *uap) { - int error = 0; - size_t lcnamelen; - struct proc *p; struct loginclass *lc; + size_t lcnamelen; - p = td->td_proc; - PROC_LOCK(p); - lc = p->p_ucred->cr_loginclass; - loginclass_hold(lc); - PROC_UNLOCK(p); - + lc = td->td_ucred->cr_loginclass; lcnamelen = strlen(lc->lc_name) + 1; if (lcnamelen > uap->namelen) - error = ERANGE; - if (error == 0) - error = copyout(lc->lc_name, uap->namebuf, lcnamelen); - loginclass_free(lc); - return (error); + return (ERANGE); + return (copyout(lc->lc_name, uap->namebuf, lcnamelen)); } /* |