diff options
author | green <green@FreeBSD.org> | 2001-02-18 13:30:20 +0000 |
---|---|---|
committer | green <green@FreeBSD.org> | 2001-02-18 13:30:20 +0000 |
commit | 18d474781ff1acbc67429e2db4fa0cf9a0d3c51e (patch) | |
tree | 808a921485b80fef4bca2cceb1aebb079b676224 /sys/sys/ucred.h | |
parent | e3ae1d8f1208e5e776d6d807b5d3249c810fa857 (diff) | |
download | FreeBSD-src-18d474781ff1acbc67429e2db4fa0cf9a0d3c51e.zip FreeBSD-src-18d474781ff1acbc67429e2db4fa0cf9a0d3c51e.tar.gz |
Switch to using a struct xucred instead of a struct xucred when not
actually in the kernel. This structure is a different size than
what is currently in -CURRENT, but should hopefully be the last time
any application breakage is caused there. As soon as any major
inconveniences are removed, the definition of the in-kernel struct
ucred should be conditionalized upon defined(_KERNEL).
This also changes struct export_args to remove dependency on the
constantly-changing struct ucred, as well as limiting the bounds
of the size fields to the correct size. This means: a) mountd and
friends won't break all the time, b) mountd and friends won't crash
the kernel all the time if they don't know what they're doing wrt
actual struct export_args layout.
Reviewed by: bde
Diffstat (limited to 'sys/sys/ucred.h')
-rw-r--r-- | sys/sys/ucred.h | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/sys/sys/ucred.h b/sys/sys/ucred.h index 5fb8d6d..63adce8 100644 --- a/sys/sys/ucred.h +++ b/sys/sys/ucred.h @@ -57,6 +57,19 @@ struct ucred { #define NOCRED ((struct ucred *)0) /* no credential available */ #define FSCRED ((struct ucred *)-1) /* filesystem credential */ +/* + * This is the external representation of struct ucred, based upon the + * size of a 4.2-RELEASE struct ucred. There will probably never be + * any need to change the size of this or layout of its used fields. + */ +struct xucred { + u_short _cr_unused0; /* compatibility with old ucred */ + uid_t cr_uid; /* effective user id */ + short cr_ngroups; /* number of groups */ + gid_t cr_groups[NGROUPS]; /* groups */ + void *_cr_unused1; /* compatibility with old ucred */ +}; + #ifdef _KERNEL struct proc; |