Hi, <br>I use the below code to get user and password from pam, but there is a problem for password.<br>Password is (null) when I call "rc = pam_get_item (pamh, PAM_AUTHTOK, (const void **) &p);"<br>what is the problem with the code?
<br><br>Regards,<br><br><br> 53 D(("get user returned error: %s", pam_strerror(pamh,retval)));<br> 55 int rc;<br> 56 char *user=NULL;<br> 57 char *p=NULL;<br> 58 int use_first_pass = 0, try_first_pass = 0;
<br> 59 int i;<br> 60<br> 61 for (i = 0; i < argc; i++)<br> 62 {<br> 63 if (!strcmp (argv[i], "use_first_pass"))<br> 64 use_first_pass = 1;<br> 65 else if (!strcmp (argv[i], "try_first_pass"))
<br> 66 try_first_pass = 1;<br> 72 }<br> 73 rc = pam_get_user(pamh,(const char **) &user, NULL);<br> 74 if (rc != PAM_SUCCESS)<br> 75 {<br> 76 D(("get user returned error: %s", pam_strerror(pamh,rc)));
<br> 78 return rc;<br> 79 }<br><br> 82 if (user == NULL || *user == '\0')<br> 83 {<br> 84 D(("username not known"));<br> 85 rc = pam_set_item(pamh, PAM_USER, (const char *) DEFAULT_USER);<br> 86 if (rc != PAM_SUCCESS)
<br> 87 return PAM_USER_UNKNOWN;<br> 88 }<br> 89 //user = NULL; /* clean up */<br> 90<br> 91 rc = pam_get_item (pamh, PAM_AUTHTOK, (const void **) &p);<br> 92 syslog (LOG_ERR, "pass: %s", p);
<br> 93 syslog (LOG_ERR, "user: %s", user);<br> 94 return PAM_SUCCESS;<br> 95 if (rc == PAM_SUCCESS && (use_first_pass || try_first_pass))<br><br>