diff options
author | Darren Tucker <dtucker@zip.com.au> | 2003-09-19 20:55:10 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2003-09-19 20:55:10 +1000 |
commit | 7baaa6a9615ec2bc05e4af7bcc751bfb2e6b3881 (patch) | |
tree | 024459b89ff61a3899e2115c4ebe076604c83d4c /session.c | |
parent | 387666a626a625b516ea621e463682e647ffbb50 (diff) |
- (dtucker) [session.c] Bug #643: Fix size_t -> u_int and fix null deref
when /etc/default/login doesn't exist or isn't readable. Fixes from
jparsons-lists at saffron.net and georg.oppenberg at deu mci com.
Diffstat (limited to 'session.c')
-rw-r--r-- | session.c | 6 |
1 files changed, 4 insertions, 2 deletions
@@ -912,8 +912,7 @@ static void | |||
912 | read_etc_default_login(char ***env, u_int *envsize, uid_t uid) | 912 | read_etc_default_login(char ***env, u_int *envsize, uid_t uid) |
913 | { | 913 | { |
914 | char **tmpenv = NULL, *var; | 914 | char **tmpenv = NULL, *var; |
915 | u_int i; | 915 | u_int i, tmpenvsize = 0; |
916 | size_t tmpenvsize = 0; | ||
917 | mode_t mask; | 916 | mode_t mask; |
918 | 917 | ||
919 | /* | 918 | /* |
@@ -923,6 +922,9 @@ read_etc_default_login(char ***env, u_int *envsize, uid_t uid) | |||
923 | */ | 922 | */ |
924 | read_environment_file(&tmpenv, &tmpenvsize, "/etc/default/login"); | 923 | read_environment_file(&tmpenv, &tmpenvsize, "/etc/default/login"); |
925 | 924 | ||
925 | if (tmpenv == NULL) | ||
926 | return; | ||
927 | |||
926 | if (uid == 0) | 928 | if (uid == 0) |
927 | var = child_get_env(tmpenv, "SUPATH"); | 929 | var = child_get_env(tmpenv, "SUPATH"); |
928 | else | 930 | else |