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>