summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorMark Eichin <eichin@mit.edu>1995-11-13 01:24:25 +0000
committerMark Eichin <eichin@mit.edu>1995-11-13 01:24:25 +0000
commitade6a0e649fdfb15bae1ec0d86dfe5c6d691e8ee (patch)
tree0c34a00dbd96d4c2bb1f26f59fefa0dd89627b94 /src
parent2b3eb6c524b894bb2f5ebf38763a219855f9de7f (diff)
downloadkrb5-ade6a0e649fdfb15bae1ec0d86dfe5c6d691e8ee.tar.gz
krb5-ade6a0e649fdfb15bae1ec0d86dfe5c6d691e8ee.tar.xz
krb5-ade6a0e649fdfb15bae1ec0d86dfe5c6d691e8ee.zip
* krshd.c (doit): drag TZ= from parent environment into envinit to
pass to child. (envinit, TZENV): add one more slot for optional TZ, and mark it. git-svn-id: svn://anonsvn.mit.edu/krb5/trunk@7089 dc483132-0cff-0310-8789-dd5450dbe970
Diffstat (limited to 'src')
-rw-r--r--src/appl/bsd/ChangeLog6
-rw-r--r--src/appl/bsd/krshd.c17
2 files changed, 21 insertions, 2 deletions
diff --git a/src/appl/bsd/ChangeLog b/src/appl/bsd/ChangeLog
index 7d121ffe8..baf390dd9 100644
--- a/src/appl/bsd/ChangeLog
+++ b/src/appl/bsd/ChangeLog
@@ -1,3 +1,9 @@
+Sun Nov 12 04:44:50 1995 Mark W. Eichin <eichin@cygnus.com>
+
+ * krshd.c (doit): drag TZ= from parent environment into envinit to
+ pass to child.
+ (envinit, TZENV): add one more slot for optional TZ, and mark it.
+
Thu Nov 2 16:16:47 1995 Ezra Peisach <epeisach@kangaroo.mit.edu>
* krlogin.c, krcp.c, krsh.c (main): If invoked with -D port, do
diff --git a/src/appl/bsd/krshd.c b/src/appl/bsd/krshd.c
index fae360648..eb760fc13 100644
--- a/src/appl/bsd/krshd.c
+++ b/src/appl/bsd/krshd.c
@@ -442,10 +442,12 @@ char *getenv();
#else /* CRAY */
#ifdef KERBEROS
char *envinit[] =
-{homedir, shell, 0, username, term, 0};
+{homedir, shell, 0, username, term, 0, 0};
+#define TZENV 5
#else /* KERBEROS */
char *envinit[] =
-{homedir, shell, 0, username, term, 0};
+{homedir, shell, 0, username, term, 0, 0};
+#define TZENV 5
#endif /* KERBEROS */
#endif /* CRAY */
@@ -1229,6 +1231,17 @@ doit(f, fromp)
}
#endif
(void) setuid((uid_t)pwd->pw_uid);
+ /* if TZ is set in the parent, drag it in */
+ {
+ char **findtz = environ;
+ while(*findtz) {
+ if(!strncmp(*findtz,"TZ=",3)) {
+ envinit[TZENV] = *findtz;
+ break;
+ }
+ findtz++;
+ }
+ }
environ = envinit;
strncat(homedir, pwd->pw_dir, sizeof(homedir)-6);
strncat(shell, pwd->pw_shell, sizeof(shell)-7);