summaryrefslogtreecommitdiffstats
path: root/sys/compat/svr4
diff options
context:
space:
mode:
Diffstat (limited to 'sys/compat/svr4')
-rw-r--r--sys/compat/svr4/svr4_misc.c11
-rw-r--r--sys/compat/svr4/svr4_sysvec.c8
2 files changed, 7 insertions, 12 deletions
diff --git a/sys/compat/svr4/svr4_misc.c b/sys/compat/svr4/svr4_misc.c
index 1baed66..a92e8a4 100644
--- a/sys/compat/svr4/svr4_misc.c
+++ b/sys/compat/svr4/svr4_misc.c
@@ -1283,7 +1283,7 @@ loop:
/*
* Decrement the count of procs running with this uid.
*/
- (void)chgproccnt(q->p_cred->p_uidinfo, -1, 0);
+ (void)chgproccnt(q->p_ucred->cr_ruidinfo, -1, 0);
/*
* Release reference to text vnode.
@@ -1294,13 +1294,8 @@ loop:
/*
* Free up credentials.
*/
- PROC_LOCK(q);
- if (--q->p_cred->p_refcnt == 0) {
- crfree(q->p_ucred);
- uifree(q->p_cred->p_uidinfo);
- FREE(q->p_cred, M_SUBPROC);
- q->p_cred = NULL;
- }
+ crfree(q->p_ucred);
+ q->p_ucred = NULL;
/*
* Remove unused arguments
diff --git a/sys/compat/svr4/svr4_sysvec.c b/sys/compat/svr4/svr4_sysvec.c
index 912cd2a..9137e0c 100644
--- a/sys/compat/svr4/svr4_sysvec.c
+++ b/sys/compat/svr4/svr4_sysvec.c
@@ -213,10 +213,10 @@ svr4_fixup(register_t **stack_base, struct image_params *imgp)
AUXARGS_ENTRY(pos, AT_FLAGS, args->flags);
AUXARGS_ENTRY(pos, AT_ENTRY, args->entry);
AUXARGS_ENTRY(pos, AT_BASE, args->base);
- AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_cred->p_ruid);
- AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_cred->p_svuid);
- AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_cred->p_rgid);
- AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_cred->p_svgid);
+ AUXARGS_ENTRY(pos, AT_UID, imgp->proc->p_ucred->cr_ruid);
+ AUXARGS_ENTRY(pos, AT_EUID, imgp->proc->p_ucred->cr_svuid);
+ AUXARGS_ENTRY(pos, AT_GID, imgp->proc->p_ucred->cr_rgid);
+ AUXARGS_ENTRY(pos, AT_EGID, imgp->proc->p_ucred->cr_svgid);
AUXARGS_ENTRY(pos, AT_NULL, 0);
free(imgp->auxargs, M_TEMP);
OpenPOWER on IntegriCloud