Support stacking for account management as well as for session setup. diff -upk.orig Linux-PAM-0.99.2.1.orig/modules/pam_limits/pam_limits.c Linux-PAM-0.99.2.1/modules/pam_limits/pam_limits.c --- Linux-PAM-0.99.2.1.orig/modules/pam_limits/pam_limits.c 2005-09-21 13:35:29 +0000 +++ Linux-PAM-0.99.2.1/modules/pam_limits/pam_limits.c 2005-12-26 20:42:27 +0000 @@ -672,14 +672,24 @@ pam_sm_close_session (pam_handle_t *pamh } #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_limits_modstruct = { "pam_limits", NULL, NULL, - NULL, + pam_sm_acct_mgmt, pam_sm_open_session, pam_sm_close_session, NULL