--- poppassd.c 2006-11-09 20:43:14.000000000 +0530 +++ poppassd.c 2006-11-09 20:46:34.000000000 +0530 @@ -104,7 +104,6 @@ void ReadFromClient (char *line) { char *sp; - int i; bzero(line, BUFSIZE); fgets (line, BUFSIZE-1, stdin); @@ -143,23 +142,27 @@ pop_state = POP_SKIPASS; } - r[i].resp_retcode = 0; - if(msg[i]->msg_style == PAM_PROMPT_ECHO_OFF || + r[i].resp_retcode = 0; + if(msg[i]->msg_style == PAM_PROMPT_ECHO_OFF || msg[i]->msg_style == PAM_PROMPT_ECHO_ON) - { - switch(pop_state) { - case POP_OLDPASS: r[i].resp = strdup(oldpass); - break; - case POP_NEWPASS: r[i].resp = strdup(newpass); - break; - case POP_SKIPASS: r[i].resp = NULL; - break; - default: syslog(LOG_ERR, "PAM error: too many switches (state=%d)", pop_state); + { + switch(pop_state) { + case POP_OLDPASS: + r[i].resp = strdup(oldpass); + break; + case POP_NEWPASS: + r[i].resp = strdup(newpass); + break; + case POP_SKIPASS: + r[i].resp = NULL; + break; + default: + syslog(LOG_ERR, "PAM error: too many switches (state=%d)", pop_state); + } + } else + { + r[i].resp = strdup(""); } - } else - { - r[i].resp = strdup(""); - } } *resp = r; @@ -175,16 +178,8 @@ { char line[BUFSIZE]; char user[BUFSIZE]; - char emess[BUFSIZE]; - char *slavedev; struct passwd *pw, *getpwnam(); - struct spwd *sp; - int c, master; - pid_t pid, wpid; - int wstat; - int ret; pam_handle_t *pamh=NULL; - char *item=oldpass; *user = *oldpass = *newpass = 0; @@ -269,5 +264,5 @@ WriteToClient("200 Bye."); closelog(); exit(0); - } +}