Lines 104-110
Link Here
|
104 |
void ReadFromClient (char *line) |
104 |
void ReadFromClient (char *line) |
105 |
{ |
105 |
{ |
106 |
char *sp; |
106 |
char *sp; |
107 |
int i; |
|
|
108 |
|
107 |
|
109 |
bzero(line, BUFSIZE); |
108 |
bzero(line, BUFSIZE); |
110 |
fgets (line, BUFSIZE-1, stdin); |
109 |
fgets (line, BUFSIZE-1, stdin); |
Lines 143-165
Link Here
|
143 |
pop_state = POP_SKIPASS; |
142 |
pop_state = POP_SKIPASS; |
144 |
} |
143 |
} |
145 |
|
144 |
|
146 |
r[i].resp_retcode = 0; |
145 |
r[i].resp_retcode = 0; |
147 |
if(msg[i]->msg_style == PAM_PROMPT_ECHO_OFF || |
146 |
if(msg[i]->msg_style == PAM_PROMPT_ECHO_OFF || |
148 |
msg[i]->msg_style == PAM_PROMPT_ECHO_ON) |
147 |
msg[i]->msg_style == PAM_PROMPT_ECHO_ON) |
149 |
{ |
148 |
{ |
150 |
switch(pop_state) { |
149 |
switch(pop_state) { |
151 |
case POP_OLDPASS: r[i].resp = strdup(oldpass); |
150 |
case POP_OLDPASS: |
152 |
break; |
151 |
r[i].resp = strdup(oldpass); |
153 |
case POP_NEWPASS: r[i].resp = strdup(newpass); |
152 |
break; |
154 |
break; |
153 |
case POP_NEWPASS: |
155 |
case POP_SKIPASS: r[i].resp = NULL; |
154 |
r[i].resp = strdup(newpass); |
156 |
break; |
155 |
break; |
157 |
default: syslog(LOG_ERR, "PAM error: too many switches (state=%d)", pop_state); |
156 |
case POP_SKIPASS: |
|
|
157 |
r[i].resp = NULL; |
158 |
break; |
159 |
default: |
160 |
syslog(LOG_ERR, "PAM error: too many switches (state=%d)", pop_state); |
161 |
} |
162 |
} else |
163 |
{ |
164 |
r[i].resp = strdup(""); |
158 |
} |
165 |
} |
159 |
} else |
|
|
160 |
{ |
161 |
r[i].resp = strdup(""); |
162 |
} |
163 |
} |
166 |
} |
164 |
|
167 |
|
165 |
*resp = r; |
168 |
*resp = r; |
Lines 175-190
Link Here
|
175 |
{ |
178 |
{ |
176 |
char line[BUFSIZE]; |
179 |
char line[BUFSIZE]; |
177 |
char user[BUFSIZE]; |
180 |
char user[BUFSIZE]; |
178 |
char emess[BUFSIZE]; |
|
|
179 |
char *slavedev; |
180 |
struct passwd *pw, *getpwnam(); |
181 |
struct passwd *pw, *getpwnam(); |
181 |
struct spwd *sp; |
|
|
182 |
int c, master; |
183 |
pid_t pid, wpid; |
184 |
int wstat; |
185 |
int ret; |
186 |
pam_handle_t *pamh=NULL; |
182 |
pam_handle_t *pamh=NULL; |
187 |
char *item=oldpass; |
|
|
188 |
|
183 |
|
189 |
*user = *oldpass = *newpass = 0; |
184 |
*user = *oldpass = *newpass = 0; |
190 |
|
185 |
|
Lines 269-273
Link Here
|
269 |
WriteToClient("200 Bye."); |
264 |
WriteToClient("200 Bye."); |
270 |
closelog(); |
265 |
closelog(); |
271 |
exit(0); |
266 |
exit(0); |
272 |
} |
267 |
} |
273 |
|
268 |
|