|
Lines 266-271
pam_getenvlist(pam_handle_t *pamh)
Link Here
|
| 266 |
} |
266 |
} |
| 267 |
#endif |
267 |
#endif |
| 268 |
|
268 |
|
|
|
269 |
#ifndef HAVE_PAM_PUTENV |
| 270 |
static int |
| 271 |
pam_putenv(pam_handle_t *pamh, const char *name_value) |
| 272 |
{ |
| 273 |
return PAM_SUCCESS; |
| 274 |
} |
| 275 |
#endif /* HAVE_PAM_PUTENV */ |
| 276 |
|
| 269 |
/* |
277 |
/* |
| 270 |
* Some platforms, notably Solaris, do not enforce password complexity |
278 |
* Some platforms, notably Solaris, do not enforce password complexity |
| 271 |
* rules during pam_chauthtok() if the real uid of the calling process |
279 |
* rules during pam_chauthtok() if the real uid of the calling process |
|
Lines 360-372
import_environments(struct sshbuf *b)
Link Here
|
| 360 |
for (i = 0; i < num_env; i++) { |
368 |
for (i = 0; i < num_env; i++) { |
| 361 |
if ((r = sshbuf_get_cstring(b, &env, NULL)) != 0) |
369 |
if ((r = sshbuf_get_cstring(b, &env, NULL)) != 0) |
| 362 |
fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
370 |
fatal("%s: buffer error: %s", __func__, ssh_err(r)); |
| 363 |
#ifdef HAVE_PAM_PUTENV |
|
|
| 364 |
/* Errors are not fatal here */ |
371 |
/* Errors are not fatal here */ |
| 365 |
if ((r = pam_putenv(sshpam_handle, env)) != PAM_SUCCESS) { |
372 |
if ((r = pam_putenv(sshpam_handle, env)) != PAM_SUCCESS) { |
| 366 |
error("PAM: pam_putenv: %s", |
373 |
error("PAM: pam_putenv: %s", |
| 367 |
pam_strerror(sshpam_handle, r)); |
374 |
pam_strerror(sshpam_handle, r)); |
| 368 |
} |
375 |
} |
| 369 |
#endif |
|
|
| 370 |
/* XXX leak env? */ |
376 |
/* XXX leak env? */ |
| 371 |
} |
377 |
} |
| 372 |
#endif |
378 |
#endif |
|
Lines 1205-1211
int
Link Here
|
| 1205 |
do_pam_putenv(char *name, char *value) |
1211 |
do_pam_putenv(char *name, char *value) |
| 1206 |
{ |
1212 |
{ |
| 1207 |
int ret = 1; |
1213 |
int ret = 1; |
| 1208 |
#ifdef HAVE_PAM_PUTENV |
|
|
| 1209 |
char *compound; |
1214 |
char *compound; |
| 1210 |
size_t len; |
1215 |
size_t len; |
| 1211 |
|
1216 |
|
|
Lines 1215-1221
do_pam_putenv(char *name, char *value)
Link Here
|
| 1215 |
snprintf(compound, len, "%s=%s", name, value); |
1220 |
snprintf(compound, len, "%s=%s", name, value); |
| 1216 |
ret = pam_putenv(sshpam_handle, compound); |
1221 |
ret = pam_putenv(sshpam_handle, compound); |
| 1217 |
free(compound); |
1222 |
free(compound); |
| 1218 |
#endif |
|
|
| 1219 |
|
1223 |
|
| 1220 |
return (ret); |
1224 |
return (ret); |
| 1221 |
} |
1225 |
} |