diff options
author | Steve Langasek <steve.langasek@ubuntu.com> | 2019-01-03 21:06:54 -0800 |
---|---|---|
committer | Steve Langasek <vorlon@debian.org> | 2019-01-08 21:51:58 -0800 |
commit | 3a4dfe474b63e2133aa190862149646eca2e3bda (patch) | |
tree | add0a0f60e1fecb5b7383fc3edbbc16a91a48a7b /libpam/include/security/pam_modutil.h | |
parent | 25743de9cb930e134fa533a21ec29fd28c75f26c (diff) | |
parent | f3c0273b7bd2d7fdcac3fe3604cedd82afc57f49 (diff) | |
download | pam-3a4dfe474b63e2133aa190862149646eca2e3bda.tar.gz pam-3a4dfe474b63e2133aa190862149646eca2e3bda.tar.bz2 pam-3a4dfe474b63e2133aa190862149646eca2e3bda.zip |
merge upstream version 1.1.3
Diffstat (limited to 'libpam/include/security/pam_modutil.h')
-rw-r--r-- | libpam/include/security/pam_modutil.h | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/libpam/include/security/pam_modutil.h b/libpam/include/security/pam_modutil.h index ffdf5ad0..317202de 100644 --- a/libpam/include/security/pam_modutil.h +++ b/libpam/include/security/pam_modutil.h @@ -100,6 +100,30 @@ pam_modutil_write(int fd, const char *buffer, int count); extern int PAM_NONNULL((1,3)) pam_modutil_audit_write(pam_handle_t *pamh, int type, const char *message, int retval); + +struct pam_modutil_privs { + gid_t *grplist; + int number_of_groups; + int allocated; + gid_t old_gid; + uid_t old_uid; + int is_dropped; +}; + +#define PAM_MODUTIL_NGROUPS 64 +#define PAM_MODUTIL_DEF_PRIVS(n) \ + gid_t n##_grplist[PAM_MODUTIL_NGROUPS]; \ + struct pam_modutil_privs n = { n##_grplist, PAM_MODUTIL_NGROUPS, 0, -1, -1, 0 } + +extern int PAM_NONNULL((1,2,3)) +pam_modutil_drop_priv(pam_handle_t *pamh, + struct pam_modutil_privs *p, + const struct passwd *pw); + +extern int PAM_NONNULL((1,2)) +pam_modutil_regain_priv(pam_handle_t *pamh, + struct pam_modutil_privs *p); + #ifdef __cplusplus } #endif |