pam_get_item() question
Jason Gerfen
jason.gerfen at scl.utah.edu
Tue Nov 16 19:00:32 UTC 2004
I am attempting to get the pw from a user through the pam_get_item()
function call. here is my code, if someone could give me some
information as to why it is causing the display manager to crash that
would be great.
loading module from /etc/pam.d/xdm & gdm
auth sufficient pam_tester.so try_first_pass
my code:
/* PAM includes */
#include <security/pam_modules.h>
#include <security/_pam_macros.h>
#include <security/pam_appl.h>
/* PAM definitions */
#define PAM_SM_ACCOUNT
#define PAM_SM_AUTH
#define PAM_SM_PASSWORD
#define PAM_SM_SESSION
/* Handle our authentication process */
PAM_EXTERN
int pam_sm_authenticate( pam_handle_t *pamh, int flags, int argc,
const char **argv )
{
int retval;
udataptr myUser = &localUser;
myConfigPtr myConfig = &localConfig;
char user[15];
char *password;
myUser->usrname=user;
char error_msg[30];
if( ( retval = pam_get_user( pamh, &( myUser->usrname ), "PAM_test
login:" ) != PAM_SUCCESS ) ) {
strcpy( error_msg, "Could not obtain user name: " );
strcat( error_msg, myUser->usrname );
_pam_log( LOG_ERR, error_msg, pam_strerror( pamh, retval ) );
}
if( ( retval = pam_get_user( pamh, &( myUser->usrname ), "PAM_test
login:" ) == PAM_SUCCESS ) ) {
strcpy( error_msg, "Obtained username: " );
strcat( error_msg, myUser->usrname );
_pam_log( LOG_ERR, error_msg, pam_strerror( pamh, retval ) );
}
if( pam_get_item( pamh, PAM_AUTHTOK, ( const void ** ) &password )
!= PAM_SUCCESS ) {
_pam_log( LOG_ERR, "Error retrieving password" );
return 1;
} else {
if( strlen( password ) != NULL ) {
strcpy( myUser->password, password );
} else {
_pam_log( LOG_ERR, "Unable to retrive password" );
return 1;
}
So far it successfully gathers our username but any call to the
pam_get_item() completely crashes the display
--
Jason Gerfen
jason.gerfen at scl.utah.edu
"And remember... If the ladies
don't find you handsome, they
should at least find you handy..."
~The Red Green show
More information about the Pam-list
mailing list