iliaa Tue Apr 13 14:23:10 2004 EDT Modified files: (Branch: PHP_4_3) /php-src/ext/session session.c /php-src NEWS Log: MFH: Fixed bug #27963 (Session lifetime setting may leak between requests). http://cvs.php.net/diff.php/php-src/ext/session/session.c?r1=1.336.2.37&r2=1.336.2.38&ty=u Index: php-src/ext/session/session.c diff -u php-src/ext/session/session.c:1.336.2.37 php-src/ext/session/session.c:1.336.2.38 --- php-src/ext/session/session.c:1.336.2.37 Mon Mar 29 16:28:47 2004 +++ php-src/ext/session/session.c Tue Apr 13 14:23:10 2004 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: session.c,v 1.336.2.37 2004/03/29 21:28:47 wez Exp $ */ +/* $Id: session.c,v 1.336.2.38 2004/04/13 18:23:10 iliaa Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1110,8 +1110,8 @@ zend_get_parameters_ex(ZEND_NUM_ARGS(), &lifetime, &path, &domain, &secure) == FAILURE) WRONG_PARAM_COUNT; - convert_to_long_ex(lifetime); - PS(cookie_lifetime) = Z_LVAL_PP(lifetime); + convert_to_string_ex(lifetime); + zend_alter_ini_entry("session.cookie_lifetime", sizeof("session.cookie_lifetime"), Z_STRVAL_PP(lifetime), Z_STRLEN_PP(lifetime), PHP_INI_USER, PHP_INI_STAGE_RUNTIME); if (ZEND_NUM_ARGS() > 1) { convert_to_string_ex(path); @@ -1174,32 +1174,28 @@ { zval **p_name; int ac = ZEND_NUM_ARGS(); - char *old; if (ac < 0 || ac > 1 || zend_get_parameters_ex(ac, &p_name) == FAILURE) WRONG_PARAM_COUNT; - - old = safe_estrdup(PS(mod)->s_name); if (ac == 1) { - ps_module *tempmod; - convert_to_string_ex(p_name); - tempmod = _php_find_ps_module(Z_STRVAL_PP(p_name) TSRMLS_CC); - if (tempmod) { - if (PS(mod_data)) - PS(mod)->s_close(&PS(mod_data) TSRMLS_CC); - PS(mod) = tempmod; - PS(mod_data) = NULL; - } else { - efree(old); + if (!_php_find_ps_module(Z_STRVAL_PP(p_name) TSRMLS_CC)) { php_error_docref(NULL TSRMLS_CC, E_ERROR, "Cannot find named PHP session module (%s)", Z_STRVAL_PP(p_name)); RETURN_FALSE; } - } + if (PS(mod_data)) { + PS(mod)->s_close(&PS(mod_data) TSRMLS_CC); + } + PS(mod_data) = NULL; - RETVAL_STRING(old, 0); + RETVAL_STRING(safe_estrdup(PS(mod)->s_name), 0); + + zend_alter_ini_entry("session.save_handler", sizeof("session.save_handler"), Z_STRVAL_PP(p_name), Z_STRLEN_PP(p_name), PHP_INI_USER, PHP_INI_STAGE_RUNTIME); + } else { + RETURN_STRING(safe_estrdup(PS(mod)->s_name), 0); + } } /* }}} */ http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1247.2.636&r2=1.1247.2.637&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1247.2.636 php-src/NEWS:1.1247.2.637 --- php-src/NEWS:1.1247.2.636 Thu Apr 8 17:23:31 2004 +++ php-src/NEWS Tue Apr 13 14:23:10 2004 @@ -6,6 +6,7 @@ - Fixed a bug that prevented building of the GD extension against external GD lib 1.X. (Ilia, Edin, Nick Talbott). - Synchronized bundled GD library with GD 2.0.22. (Ilia) +- Fixed bug #27963 (Session lifetime setting may leak between requests). (Ilia) - Fixed bug #27849 (configure craps out on trivial syntax error). (Derick) - Fixed bug #27822 (is_resource() returns TRUE for closed resources). (Derick) - Fixed bug #27819 (problems returning reference to a reference parameter).
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php