diff options
author | Brian Behlendorf <[email protected]> | 2011-03-22 11:18:15 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2011-03-22 12:18:44 -0700 |
commit | 734fcac78d8c430aeb3731590b77dfcfa6de224f (patch) | |
tree | 76cde119b52cb4c9eee1bcb9dfac669199320d13 /module/spl/spl-cred.c | |
parent | 9b0c3b2aa87610690cf6e1a792ff1484274a392d (diff) |
Add crgetfsuid()/crgetfsgid() helpers
Solaris credentials don't have an fsuid/fsguid field but Linux
credentials do. To handle this case the Solaris API is being
modestly extended to include the crgetfsuid()/crgetfsgid()
helper functions.
Addititionally, because the crget*() helpers are implemented
identically regardless of HAVE_CRED_STRUCT they have been
moved outside the #ifdef to common code. This simplification
means we only have one version of the helper to keep to to date.
Diffstat (limited to 'module/spl/spl-cred.c')
-rw-r--r-- | module/spl/spl-cred.c | 136 |
1 files changed, 58 insertions, 78 deletions
diff --git a/module/spl/spl-cred.c b/module/spl/spl-cred.c index dd5d9da01..ce3425d32 100644 --- a/module/spl/spl-cred.c +++ b/module/spl/spl-cred.c @@ -84,48 +84,6 @@ crfree(cred_t *cr) put_cred((const cred_t *)cr); } -/* Return the effective user id */ -uid_t -crgetuid(const cred_t *cr) -{ - return cr->euid; -} - -/* Return the real user id */ -uid_t -crgetruid(const cred_t *cr) -{ - return cr->uid; -} - -/* Return the saved user id */ -uid_t -crgetsuid(const cred_t *cr) -{ - return cr->suid; -} - -/* Return the effective group id */ -gid_t -crgetgid(const cred_t *cr) -{ - return cr->egid; -} - -/* Return the real group id */ -gid_t -crgetrgid(const cred_t *cr) -{ - return cr->gid; -} - -/* Return the saved group id */ -gid_t -crgetsgid(const cred_t *cr) -{ - return cr->sgid; -} - /* Return the number of supplemental groups */ int crgetngroups(const cred_t *cr) @@ -186,42 +144,6 @@ void crhold(cred_t *cr) { } /* Free a reference on the credential and group info */ void crfree(cred_t *cr) { } -/* Return the effective user id */ -uid_t -crgetuid(const cred_t *cr) { - return cr->euid; -} - -/* Return the effective real id */ -uid_t -crgetruid(const cred_t *cr) { - return cr->uid; -} - -/* Return the effective saved id */ -uid_t -crgetsuid(const cred_t *cr) { - return cr->suid; -} - -/* Return the effective group id */ -gid_t -crgetgid(const cred_t *cr) { - return cr->egid; -} - -/* Return the real group id */ -gid_t -crgetrgid(const cred_t *cr) { - return cr->gid; -} - -/* Return the saved group id */ -gid_t -crgetsgid(const cred_t *cr) { - return cr->sgid; -} - /* Return the number of supplemental groups */ int crgetngroups(const cred_t *cr) @@ -289,14 +211,72 @@ groupmember(gid_t gid, const cred_t *cr) #endif /* HAVE_CRED_STRUCT */ +/* Return the effective user id */ +uid_t +crgetuid(const cred_t *cr) +{ + return cr->euid; +} + +/* Return the real user id */ +uid_t +crgetruid(const cred_t *cr) +{ + return cr->uid; +} + +/* Return the saved user id */ +uid_t +crgetsuid(const cred_t *cr) +{ + return cr->suid; +} + +/* Return the filesystem user id */ +uid_t +crgetfsuid(const cred_t *cr) +{ + return cr->fsuid; +} + +/* Return the effective group id */ +gid_t +crgetgid(const cred_t *cr) +{ + return cr->egid; +} + +/* Return the real group id */ +gid_t +crgetrgid(const cred_t *cr) +{ + return cr->gid; +} + +/* Return the saved group id */ +gid_t +crgetsgid(const cred_t *cr) +{ + return cr->sgid; +} + +/* Return the filesystem group id */ +gid_t +crgetfsgid(const cred_t *cr) +{ + return cr->fsgid; +} + EXPORT_SYMBOL(crhold); EXPORT_SYMBOL(crfree); EXPORT_SYMBOL(crgetuid); EXPORT_SYMBOL(crgetruid); EXPORT_SYMBOL(crgetsuid); +EXPORT_SYMBOL(crgetfsuid); EXPORT_SYMBOL(crgetgid); EXPORT_SYMBOL(crgetrgid); EXPORT_SYMBOL(crgetsgid); +EXPORT_SYMBOL(crgetfsgid); EXPORT_SYMBOL(crgetngroups); EXPORT_SYMBOL(crgetgroups); EXPORT_SYMBOL(groupmember); |