summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorWez Furlong <wez@php.net>2003-10-15 00:14:37 +0000
committerWez Furlong <wez@php.net>2003-10-15 00:14:37 +0000
commit69cfb62619ee3a5f2f58e41a9f14016876c6934d (patch)
tree0ad937fa9b2f1540df95c3b069161ee899662b32
parentadfb56c304705c60ba746e47c11a146f86065294 (diff)
downloadphp-git-69cfb62619ee3a5f2f58e41a9f14016876c6934d.tar.gz
Fix bug #25825. tzset() was not called when resetting the TZ env var.
In addition, fix a slight error (made by sniper!) which would trigger tzset() to be called for any env var beginning with TZ, and not just TZ itself.
-rw-r--r--NEWS2
-rw-r--r--ext/standard/basic_functions.c8
2 files changed, 9 insertions, 1 deletions
diff --git a/NEWS b/NEWS
index 6093cd5bab..b7517c550e 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,8 @@
PHP 4 NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Oct 2003, Version 4.3.4RC2
+- Fixed bug #25825 (tzset() was not called to reset libc environment
+ on request shutdown). (Wez)
- Fixed multibyte regex engine to properly handle ".*" pattern under
POSIX compatible mode. (K.Kosako <kosako at sofnec.co.jp>, Moriyoshi)
- Fixed bug #25836 (last key of multi-dimensional array passed via GPC not
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 7f56d7b277..04140dc74a 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -950,6 +950,12 @@ static void php_putenv_destructor(putenv_entry *pe)
}
# endif
}
+ /* don't forget to reset the various libc globals that
+ * we might have changed by an earlier call to tzset(). */
+ if (!strncmp(pe->key, "TZ", pe->key_len)) {
+ tzset();
+ }
+
efree(pe->putenv_string);
efree(pe->key);
}
@@ -1347,7 +1353,7 @@ PHP_FUNCTION(putenv)
if (putenv(pe.putenv_string) == 0) { /* success */
zend_hash_add(&BG(putenv_ht), pe.key, pe.key_len+1, (void **) &pe, sizeof(putenv_entry), NULL);
#ifdef HAVE_TZSET
- if (!strncmp(pe.key, "TZ", 2)) {
+ if (!strncmp(pe.key, "TZ", pe.key_len)) {
tzset();
}
#endif