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