* src/groupmems.c (check_perms): Simplify. Always call pam_end()

at the end of the authentication.
This commit is contained in:
nekral-guest 2008-07-27 01:41:07 +00:00
parent b2f5629de8
commit aa035f9853
2 changed files with 15 additions and 25 deletions

View File

@ -1,3 +1,8 @@
2008-07-27 Nicolas François <nicolas.francois@centraliens.net>
* src/groupmems.c (check_perms): Simplify. Always call pam_end()
at the end of the authentication.
2008-07-27 Nicolas François <nicolas.francois@centraliens.net>
* src/groupmems.c: Add fail_exit() to remove the group lock file

View File

@ -170,47 +170,32 @@ static void check_perms (void)
{
#ifdef USE_PAM
pam_handle_t *pamh = NULL;
int retval;
#endif
int retval = PAM_SUCCESS;
struct passwd *pampw;
#ifdef USE_PAM
retval = PAM_SUCCESS;
pampw = getpwuid (getuid ()); /* local, no need for xgetpwuid */
if (pampw == NULL) {
retval = PAM_USER_UNKNOWN;
}
{
struct passwd *pampw;
pampw = getpwuid (getuid ()); /* local, no need for xgetpwuid */
if (pampw == NULL) {
retval = PAM_USER_UNKNOWN;
}
if (retval == PAM_SUCCESS) {
retval = pam_start ("groupmod", pampw->pw_name,
&conv, &pamh);
}
if (retval == PAM_SUCCESS) {
retval = pam_start ("groupmod", pampw->pw_name,
&conv, &pamh);
}
if (retval == PAM_SUCCESS) {
retval = pam_authenticate (pamh, 0);
if (retval != PAM_SUCCESS) {
(void) pam_end (pamh, retval);
}
}
if (retval == PAM_SUCCESS) {
retval = pam_acct_mgmt (pamh, 0);
if (retval != PAM_SUCCESS) {
(void) pam_end (pamh, retval);
}
}
(void) pam_end (pamh, retval);
if (retval != PAM_SUCCESS) {
fprintf (stderr, _("%s: PAM authentication failed\n"), Prog);
fail_exit (1);
}
if (retval == PAM_SUCCESS) {
(void) pam_end (pamh, PAM_SUCCESS);
}
#endif
}