The pre-kauth 'struct ucread' and 'struct pcred' are now only used in the

(depracted some time ago) 'struct kinfo_proc' returned by sysctl.
Move the definitions to sys/syctl.h and rename in order to ensure all the
users are located.
This commit is contained in:
dsl 2007-02-18 15:20:34 +00:00
parent c7565916df
commit 6209b5bbf3
5 changed files with 33 additions and 40 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: kern_auth.c,v 1.44 2007/02/09 21:55:30 ad Exp $ */
/* $NetBSD: kern_auth.c,v 1.45 2007/02/18 15:20:34 dsl Exp $ */
/*-
* Copyright (c) 2005, 2006 Elad Efrat <elad@NetBSD.org>
@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.44 2007/02/09 21:55:30 ad Exp $");
__KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.45 2007/02/18 15:20:34 dsl Exp $");
#define _KAUTH_PRIVATE
@ -41,6 +41,7 @@ __KERNEL_RCSID(0, "$NetBSD: kern_auth.c,v 1.44 2007/02/09 21:55:30 ad Exp $");
#include <sys/kauth_impl.h>
#include <sys/kmem.h>
#include <sys/rwlock.h>
#include <sys/sysctl.h> /* for pi_[p]cread */
/*
* Secmodel-specific credentials.
@ -543,7 +544,7 @@ kauth_cred_uucmp(kauth_cred_t cred, const struct uucred *uuc)
* Make a struct ucred out of a kauth_cred_t. For compatibility.
*/
void
kauth_cred_toucred(kauth_cred_t cred, struct ucred *uc)
kauth_cred_toucred(kauth_cred_t cred, struct ki_ucred *uc)
{
KASSERT(cred != NULL);
KASSERT(uc != NULL);
@ -561,12 +562,12 @@ kauth_cred_toucred(kauth_cred_t cred, struct ucred *uc)
* Make a struct pcred out of a kauth_cred_t. For compatibility.
*/
void
kauth_cred_topcred(kauth_cred_t cred, struct pcred *pc)
kauth_cred_topcred(kauth_cred_t cred, struct ki_pcred *pc)
{
KASSERT(cred != NULL);
KASSERT(pc != NULL);
pc->pc_ucred = NULL;
pc->p_pad = NULL;
pc->p_ruid = cred->cr_uid;
pc->p_svuid = cred->cr_svuid;
pc->p_rgid = cred->cr_gid;

View File

@ -1,4 +1,4 @@
/* $NetBSD: kauth.h,v 1.36 2007/01/31 10:08:23 elad Exp $ */
/* $NetBSD: kauth.h,v 1.37 2007/02/18 15:20:34 dsl Exp $ */
/*-
* Copyright (c) 2005, 2006 Elad Efrat <elad@NetBSD.org>
@ -36,8 +36,8 @@
#define _SYS_KAUTH_H_
struct uucred;
struct ucred;
struct pcred;
struct ki_ucred;
struct ki_pcred;
struct proc;
struct tty;
struct vnode;
@ -311,8 +311,8 @@ int kauth_cred_uidmatch(kauth_cred_t, kauth_cred_t);
void kauth_uucred_to_cred(kauth_cred_t, const struct uucred *);
void kauth_cred_to_uucred(struct uucred *, const kauth_cred_t);
int kauth_cred_uucmp(kauth_cred_t, const struct uucred *);
void kauth_cred_toucred(kauth_cred_t, struct ucred *);
void kauth_cred_topcred(kauth_cred_t, struct pcred *);
void kauth_cred_toucred(kauth_cred_t, struct ki_ucred *);
void kauth_cred_topcred(kauth_cred_t, struct ki_pcred *);
kauth_cred_t kauth_cred_get(void);

View File

@ -1,4 +1,4 @@
/* $NetBSD: proc.h,v 1.237 2007/02/17 22:31:45 pavel Exp $ */
/* $NetBSD: proc.h,v 1.238 2007/02/18 15:20:34 dsl Exp $ */
/*-
* Copyright (c) 2006, 2007 The NetBSD Foundation, Inc.
@ -402,22 +402,6 @@ struct proc {
#define P_EXITSIG(p) \
(((p)->p_slflag & (PSL_TRACED|PSL_FSTRACE)) ? SIGCHLD : p->p_exitsig)
/*
* MOVE TO ucred.h?
*
* Shareable process credentials (always resident). This includes a reference
* to the current user credentials as well as real and saved ids that may be
* used to change ids.
*/
struct pcred {
struct ucred *pc_ucred; /* Current credentials */
uid_t p_ruid; /* Real user id */
uid_t p_svuid; /* Saved effective user id */
gid_t p_rgid; /* Real group id */
gid_t p_svgid; /* Saved effective group id */
int p_refcnt; /* Number of references */
};
LIST_HEAD(proclist, proc); /* A list of processes */
/*

View File

@ -1,4 +1,4 @@
/* $NetBSD: sysctl.h,v 1.167 2007/02/17 22:31:45 pavel Exp $ */
/* $NetBSD: sysctl.h,v 1.168 2007/02/18 15:20:34 dsl Exp $ */
/*
* Copyright (c) 1989, 1993
@ -391,6 +391,23 @@ struct clockinfo {
#define KERN_PROC_TTY_NODEV NODEV /* no controlling tty */
#define KERN_PROC_TTY_REVOKE ((dev_t)-2) /* revoked tty */
struct ki_pcred {
void *p_pad;
uid_t p_ruid; /* Real user id */
uid_t p_svuid; /* Saved effective user id */
gid_t p_rgid; /* Real group id */
gid_t p_svgid; /* Saved effective group id */
int p_refcnt; /* Number of references */
};
struct ki_ucred {
uint32_t cr_ref; /* reference count */
uid_t cr_uid; /* effective user id */
gid_t cr_gid; /* effective group id */
uint32_t cr_ngroups; /* number of groups */
gid_t cr_groups[NGROUPS]; /* groups */
};
/*
* KERN_PROC subtype ops return arrays of augmented proc structures:
*/
@ -399,8 +416,8 @@ struct kinfo_proc {
struct eproc {
struct proc *e_paddr; /* address of proc */
struct session *e_sess; /* session pointer */
struct pcred e_pcred; /* process credentials */
struct ucred e_ucred; /* current credentials */
struct ki_pcred e_pcred; /* process credentials */
struct ki_ucred e_ucred; /* current credentials */
struct vmspace e_vm; /* address space */
pid_t e_ppid; /* parent process id */
pid_t e_pgid; /* process group id */

View File

@ -1,4 +1,4 @@
/* $NetBSD: ucred.h,v 1.31 2006/07/16 21:13:00 elad Exp $ */
/* $NetBSD: ucred.h,v 1.32 2007/02/18 15:20:34 dsl Exp $ */
/*
* Copyright (c) 1989, 1993
@ -49,15 +49,6 @@ struct uucred {
gid_t cr_groups[NGROUPS]; /* groups */
};
struct ucred {
uint32_t cr_ref; /* reference count */
#define cr_startcopy cr_uid /* for dup & copy */
uid_t cr_uid; /* effective user id */
gid_t cr_gid; /* effective group id */
uint32_t cr_ngroups; /* number of groups */
gid_t cr_groups[NGROUPS]; /* groups */
};
#ifdef _KERNEL
/*