diff options
author | Darren Tucker <dtucker@zip.com.au> | 2003-09-19 20:56:51 +1000 |
---|---|---|
committer | Darren Tucker <dtucker@zip.com.au> | 2003-09-19 20:56:51 +1000 |
commit | c11b1e84204e0ff449e9f3c50b990264a54f8921 (patch) | |
tree | 629451b8be69fcf9386ac1f7644c8b583b22c3b7 /session.c | |
parent | 91acbf211c2d7508155daf75461435333254093a (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 |