Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 145839 | Differences between
and this patch

Collapse All | Expand All

(-)poppassd.c (-25 / +20 lines)
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

Return to bug 145839