|
Lines 984-991
read_etc_default_login(char ***env, u_int *envsize, uid_t uid)
Link Here
|
| 984 |
} |
984 |
} |
| 985 |
#endif /* HAVE_ETC_DEFAULT_LOGIN */ |
985 |
#endif /* HAVE_ETC_DEFAULT_LOGIN */ |
| 986 |
|
986 |
|
| 987 |
void |
987 |
static void |
| 988 |
copy_environment(char **source, char ***env, u_int *envsize) |
988 |
copy_environment_blacklist(char **source, char ***env, u_int *envsize, |
|
|
989 |
const char *blacklist) |
| 989 |
{ |
990 |
{ |
| 990 |
char *var_name, *var_val; |
991 |
char *var_name, *var_val; |
| 991 |
int i; |
992 |
int i; |
|
Lines 1001-1013
copy_environment(char **source, char ***env, u_int *envsize)
Link Here
|
| 1001 |
} |
1002 |
} |
| 1002 |
*var_val++ = '\0'; |
1003 |
*var_val++ = '\0'; |
| 1003 |
|
1004 |
|
| 1004 |
debug3("Copy environment: %s=%s", var_name, var_val); |
1005 |
if (blacklist == NULL || |
| 1005 |
child_set_env(env, envsize, var_name, var_val); |
1006 |
match_pattern_list(var_name, blacklist, 0) != 1) { |
|
|
1007 |
debug3("Copy environment: %s=%s", var_name, var_val); |
| 1008 |
child_set_env(env, envsize, var_name, var_val); |
| 1009 |
} |
| 1006 |
|
1010 |
|
| 1007 |
free(var_name); |
1011 |
free(var_name); |
| 1008 |
} |
1012 |
} |
| 1009 |
} |
1013 |
} |
| 1010 |
|
1014 |
|
|
|
1015 |
void |
| 1016 |
copy_environment(char **source, char ***env, u_int *envsize) |
| 1017 |
{ |
| 1018 |
copy_environment_blacklist(source, env, envsize, NULL); |
| 1019 |
} |
| 1020 |
|
| 1011 |
static char ** |
1021 |
static char ** |
| 1012 |
do_setup_env(Session *s, const char *shell) |
1022 |
do_setup_env(Session *s, const char *shell) |
| 1013 |
{ |
1023 |
{ |
|
Lines 1169-1180
do_setup_env(Session *s, const char *shell)
Link Here
|
| 1169 |
if (options.use_pam) { |
1179 |
if (options.use_pam) { |
| 1170 |
char **p; |
1180 |
char **p; |
| 1171 |
|
1181 |
|
|
|
1182 |
/* |
| 1183 |
* Don't allow SSH_AUTH_INFO variables posted to PAM to leak |
| 1184 |
* back into the environment. |
| 1185 |
*/ |
| 1172 |
p = fetch_pam_child_environment(); |
1186 |
p = fetch_pam_child_environment(); |
| 1173 |
copy_environment(p, &env, &envsize); |
1187 |
copy_environment_blacklist(p, &env, &envsize, "SSH_AUTH_INFO*"); |
| 1174 |
free_pam_environment(p); |
1188 |
free_pam_environment(p); |
| 1175 |
|
1189 |
|
| 1176 |
p = fetch_pam_environment(); |
1190 |
p = fetch_pam_environment(); |
| 1177 |
copy_environment(p, &env, &envsize); |
1191 |
copy_environment_blacklist(p, &env, &envsize, "SSH_AUTH_INFO*"); |
| 1178 |
free_pam_environment(p); |
1192 |
free_pam_environment(p); |
| 1179 |
} |
1193 |
} |
| 1180 |
#endif /* USE_PAM */ |
1194 |
#endif /* USE_PAM */ |