Source-Changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: CVS commit: src/lib/libkvm



On Tue, Feb 06, 2007 at 09:21:51PM +0000, Elad Efrat wrote:

> Module Name:  src
> Committed By: elad
> Date:         Tue Feb  6 21:21:51 UTC 2007
> 
> Modified Files:
>       src/lib/libkvm: kvm_proc.c
> 
> Log Message:
> PR/35506: Chuck Silvers: ps doesn't work on crash dumps, libkvm doesn't
> know about kauth
> 
> Implemented _kvm_convertcred() to handle copying kauth_cred_t to userspace
> and converting it to the appropriate 'struct eproc' members ('pcred' and
> 'ucred' respectively).
> 
> Okay mlelstv@.

Thanks for fixing this. Redefining kauth_cred_t in userland isn't the right
way to go about it though. Please change it so that kauth_cred_t is defined
in a non-installed header file under sys/sys.

Cheers,
Andrew

@@ -150,6 +150,26 @@
                (p)->p_vmspace = (void *)(long)(kp)->p_vmspace; \
        } while (/*CONSTCOND*/0);

+/*
+ * NetBSD uses kauth(9) to manage credentials, which are stored in 
kauth_cred_t,
+ * a kernel-only opaque type. This is an embedded version which is *INTERNAL* 
to
+ * kvm(3) so dumps can be read properly.
+ *
+ * Whenever NetBSD starts exporting credentials to userland consistently (using
+ * 'struct uucred', or something) this will have to be updated again.
+ */
+struct kvm_kauth_cred {
+       struct simplelock cr_lock;      /* lock on cr_refcnt */
+       u_int cr_refcnt;                /* reference count */
+       uid_t cr_uid;                   /* user id */
+       uid_t cr_euid;                  /* effective user id */
+       uid_t cr_svuid;                 /* saved effective user id */
+       gid_t cr_gid;                   /* group id */
+       gid_t cr_egid;                  /* effective group id */
+       gid_t cr_svgid;                 /* saved effective group id */
+       u_int cr_ngroups;               /* number of groups */
+       gid_t cr_groups[NGROUPS];       /* group memberships */
+};




Home | Main Index | Thread Index | Old Index