summaryrefslogtreecommitdiff
path: root/session.c
diff options
context:
space:
mode:
authorDarren Tucker <dtucker@zip.com.au>2003-09-19 20:56:51 +1000
committerDarren Tucker <dtucker@zip.com.au>2003-09-19 20:56:51 +1000
commitc11b1e84204e0ff449e9f3c50b990264a54f8921 (patch)
tree629451b8be69fcf9386ac1f7644c8b583b22c3b7 /session.c
parent91acbf211c2d7508155daf75461435333254093a (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.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/session.c b/session.c
index 4497f5c0b..616fee971 100644
--- a/session.c
+++ b/session.c
@@ -912,8 +912,7 @@ static void
912read_etc_default_login(char ***env, u_int *envsize, uid_t uid) 912read_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