Is that the exact format of the code? also, what is before and after?
Nathan Yocom wrote:
A couple questions on using pam_chauthtok in Solaris (I am
testing/developing in 8). Please let me know if for some reason this is not
an appropriate list, but it seems to be the only active one I can find ;)
When I setup and call pam_chauthtok in a PAM aware app like:
if( (ret = pam_start("passwd", NULL, &changeconv, &pamh)) == PAM_SUCCESS )
if( (ret = pam_chauthtok(pamh, PAM_SILENT)) == PAM_SUCCESS )
changed = 1;
It seems to crash before even getting to my conversation function (which is
included below just in case) - it just segfaults. The same exact code works
fine in linux, so I am guessing it is a quirk with Solaris. All I want to
do is force a change of the users password (regardless of expiration etc) as
this is for an application that manages users.
Any ideas? suggestions? Let me know if I need to provide more, the app is
to be GPL'd so I can share source as necessary etc.
Thanks in advance!
Nathan Yocom
nate@yocom.org
my conversation function (where new_pass and gl_username are globals):
/** PAM Conversation for changing a users password */
int change_conv(int num_msg,const struct pam_message **msg, struct
pam_response **response, void *appdata_ptr)
{
struct pam_response *reply_with = NULL;
int num_replies;
char buffer[80];
if( num_msg <= 0 )
return PAM_CONV_ERR;
reply_with = (struct pam_response *)calloc(num_msg, sizeof(struct
pam_response));
if( reply_with == NULL )
return PAM_SYSTEM_ERR;
memset(buffer,'\0',sizeof(buffer));
for( num_replies = 0; num_replies < num_msg; num_replies++ )
{
if( msg[num_replies]->msg_style == PAM_PROMPT_ECHO_OFF )
{
reply_with[num_replies].resp_retcode = PAM_SUCCESS;
reply_with[num_replies].resp = strdup(new_pass);
}
else if( msg[num_replies]->msg_style == PAM_PROMPT_ECHO_ON )
{
reply_with[num_replies].resp_retcode = PAM_SUCCESS;
reply_with[num_replies].resp = strdup(gl_username);
}
else
{
free(reply_with);
return PAM_CONV_ERR;
}
}
*response = reply_with;
return PAM_SUCCESS;
}
_______________________________________________
Pam-list@redhat.com
https://listman.redhat.com/mailman/listinfo/pam-list
_______________________________________________
Pam-list@redhat.com
https://listman.redhat.com/mailman/listinfo/pam-list