From e70c9f1088db23f6a3f8fc911df014f3b45b8173 Mon Sep 17 00:00:00 2001 From: "Andrew G. Morgan" Date: Tue, 5 Sep 2000 04:55:04 +0000 Subject: [PATCH] Relevant BUGIDs: 113596 Purpose of commit: bugfix Commit summary: --------------- The "likeauth" module argument did not work for pam_pwdb and pam_unix. This commit fixes it. --- CHANGELOG | 1 + modules/pam_pwdb/pam_pwdb.c | 5 ++--- modules/pam_unix/pam_unix_auth.c | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index 64161420..3139013b 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -35,6 +35,7 @@ Where you should replace XXXXX with a bug-id. 0.73: please submit patches for this section with actual code/doc patches! +* "likeauth" fix for pam_unix and pam_pwdb which (Bug 113596 - agmorgan) * fix for pam_unix (support.c) to avoid segfault with NULL password (Bug 113238 - vorlon) * fix to pam_unix_passwd: try repeatedly to get a lock on the password diff --git a/modules/pam_pwdb/pam_pwdb.c b/modules/pam_pwdb/pam_pwdb.c index 68ca68fd..4d335572 100644 --- a/modules/pam_pwdb/pam_pwdb.c +++ b/modules/pam_pwdb/pam_pwdb.c @@ -83,7 +83,7 @@ PAM_EXTERN int pam_sm_authenticate(pam_handle_t *pamh, int flags if ( on(UNIX_LIKE_AUTH, ctrl) ) { D(("recording return code for next time [%d]", retval)); - pam_set_data(pamh, "pwdb_setcred_return", (void *) &retval, NULL); + pam_set_data(pamh, "pwdb_setcred_return", (void *) retval, NULL); } D(("done. [%s]", pam_strerror(pamh, retval))); @@ -108,8 +108,7 @@ PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags int *pretval = &retval; D(("recovering return code from auth call")); - pam_get_data(pamh, "pwdb_setcred_return", (const void **) &pretval); - pam_set_data(pamh, "pwdb_setcred_return", NULL, NULL); + pam_get_data(pamh, "pwdb_setcred_return", (const void **) pretval); D(("recovered data indicates that old retval was %d", retval)); } diff --git a/modules/pam_unix/pam_unix_auth.c b/modules/pam_unix/pam_unix_auth.c index a16118d6..7c639d88 100644 --- a/modules/pam_unix/pam_unix_auth.c +++ b/modules/pam_unix/pam_unix_auth.c @@ -88,9 +88,8 @@ if (on(UNIX_LIKE_AUTH, ctrl) && ret_data) { \ D(("recording return code for next time [%d]", \ retval)); \ - *ret_data = retval; \ pam_set_data(pamh, "unix_setcred_return", \ - (void *) ret_data, NULL); \ + (void *) retval, NULL); \ } \ D(("done. [%s]", pam_strerror(pamh, retval))); \ return retval; \ @@ -205,8 +204,7 @@ PAM_EXTERN int pam_sm_setcred(pam_handle_t * pamh, int flags int *pretval = NULL; D(("recovering return code from auth call")); - pam_get_data(pamh, "unix_setcred_return", (const void **) &pretval); - pam_set_data(pamh, "unix_setcred_return", NULL, NULL); + pam_get_data(pamh, "unix_setcred_return", (const void **) pretval); if(pretval) { retval = *pretval; free(pretval); -- 2.40.0