Support stacking for account management as well as for session setup. diff -upk.orig Linux-PAM-0.99.2.1.orig/modules/pam_mkhomedir/pam_mkhomedir.c Linux-PAM-0.99.2.1/modules/pam_mkhomedir/pam_mkhomedir.c --- Linux-PAM-0.99.2.1.orig/modules/pam_mkhomedir/pam_mkhomedir.c 2005-12-12 15:56:35 +0000 +++ Linux-PAM-0.99.2.1/modules/pam_mkhomedir/pam_mkhomedir.c 2005-12-26 20:44:02 +0000 @@ -479,6 +479,18 @@ int pam_sm_close_session (pam_handle_t * } #ifdef PAM_STATIC +#define pam_sm_acct_mgmt pam_sm_open_session +#elif defined(__linux__) && defined(__ELF__) +__asm__(".globl pam_sm_acct_mgmt; pam_sm_acct_mgmt = pam_sm_open_session"); +#else +PAM_EXTERN int pam_sm_acct_mgmt(pam_handle_t *pamh, int flags, + int argc, const char **argv) +{ + return pam_sm_open_session(pamh, flags, argc, argv); +} +#endif + +#ifdef PAM_STATIC /* static module data */ struct pam_module _pam_mkhomedir_modstruct = @@ -486,7 +498,7 @@ struct pam_module _pam_mkhomedir_modstru "pam_mkhomedir", NULL, NULL, - NULL, + pam_sm_acct_mgmt, pam_sm_open_session, pam_sm_close_session, NULL,