diff options
Diffstat (limited to 'modules/pam_pwdb/pam_pwdb.c')
-rw-r--r-- | modules/pam_pwdb/pam_pwdb.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/modules/pam_pwdb/pam_pwdb.c b/modules/pam_pwdb/pam_pwdb.c index b118ab23..31467684 100644 --- a/modules/pam_pwdb/pam_pwdb.c +++ b/modules/pam_pwdb/pam_pwdb.c @@ -98,11 +98,14 @@ PAM_EXTERN int pam_sm_setcred(pam_handle_t *pamh, int flags pwdb_end(); if ( on(UNIX_LIKE_AUTH, ctrl) ) { - int *pretval = &retval; + const void *pretval = NULL; D(("recovering return code from auth call")); - pam_get_data(pamh, "pwdb_setcred_return", (const void **) pretval); - D(("recovered data indicates that old retval was %d", retval)); + if ( pam_get_data(pamh, "pwdb_setcred_return", &pretval) + == PAM_SUCCESS ) { + retval = (int)(long)pretval; + D(("recovered data indicates that old retval was %d", retval)); + } } return retval; |