From bf3b8650d66d62361b7e5690e6a7b7ee67f47a18 Mon Sep 17 00:00:00 2001 From: mjg Date: Tue, 28 Oct 2014 04:59:33 +0000 Subject: Simplify sys_getloginclass. Just use current thread credentials as they have the same accuracy as the ones obtained from proc.. --- sys/kern/kern_loginclass.c | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) (limited to 'sys/kern/kern_loginclass.c') 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)); } /* -- cgit v1.1