summaryrefslogtreecommitdiff
path: root/ext/session/session.c
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2003-10-08 10:22:51 +0000
committerfoobar <sniper@php.net>2003-10-08 10:22:51 +0000
commite85a4cdbd20384d707c4e2afdfe48f1ca0896b59 (patch)
tree6f660f31e3c2a06e91fe384290d8ef7666b847d6 /ext/session/session.c
parent628afb40b638c635d70adbbde55a04c26c07ea08 (diff)
downloadphp-git-e85a4cdbd20384d707c4e2afdfe48f1ca0896b59.tar.gz
- Fixed bug #25780 (ext/session: invalid session.cookie_lifetime causes crash in win32).
Diffstat (limited to 'ext/session/session.c')
-rw-r--r--ext/session/session.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/ext/session/session.c b/ext/session/session.c
index 22521626b8..0eac74f327 100644
--- a/ext/session/session.c
+++ b/ext/session/session.c
@@ -957,13 +957,17 @@ static void php_session_send_cookie(TSRMLS_D)
if (PS(cookie_lifetime) > 0) {
struct timeval tv;
+ time_t t;
gettimeofday(&tv, NULL);
- date_fmt = php_std_date(tv.tv_sec + PS(cookie_lifetime) TSRMLS_CC);
+ t = tv.tv_sec + PS(cookie_lifetime);
- smart_str_appends(&ncookie, COOKIE_EXPIRES);
- smart_str_appends(&ncookie, date_fmt);
- efree(date_fmt);
+ if (t > 0) {
+ date_fmt = php_std_date(t TSRMLS_CC);
+ smart_str_appends(&ncookie, COOKIE_EXPIRES);
+ smart_str_appends(&ncookie, date_fmt);
+ efree(date_fmt);
+ }
}
if (PS(cookie_path)[0]) {