cvs: php4(PHP_4_0_7) /ext/session session.c
| From: | Zeev Suraski | Date: | Sat, 02 Mar 2002 14:20:18 +0000 |
| Subject: | cvs: php4(PHP_4_0_7) /ext/session session.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-9579@lists.php.net to get a copy of this message | ||
zeev Sat Mar 2 09:20:18 2002 EDT
Modified files: (Branch: PHP_4_0_7)
/php4/ext/session session.c
Log:
MFH - crash bug fix
Index: php4/ext/session/session.c
diff -u php4/ext/session/session.c:1.237.2.8 php4/ext/session/session.c:1.237.2.9
--- php4/ext/session/session.c:1.237.2.8 Tue Feb 26 14:32:52 2002
+++ php4/ext/session/session.c Sat Mar 2 09:20:17 2002
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: session.c,v 1.237.2.8 2002/02/26 19:32:52 derick Exp $ */
+/* $Id: session.c,v 1.237.2.9 2002/03/02 14:20:17 zeev Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -428,16 +428,17 @@
zval **old_vars = NULL;
if (zend_hash_find(&EG(symbol_table), "HTTP_SESSION_VARS",
sizeof("HTTP_SESSION_VARS"), (void **)&old_vars) == SUCCESS &&
Z_TYPE_PP(old_vars) == IS_ARRAY) {
- PS(http_session_vars) = *old_vars;
- zend_hash_clean(Z_ARRVAL_P(PS(http_session_vars)));
+ PS(http_session_vars) = *old_vars;
+ zend_hash_clean(Z_ARRVAL_P(PS(http_session_vars)));
} else {
- if(old_vars) {
- zend_hash_del(&EG(symbol_table), "HTTP_SESSION_VARS",
sizeof("HTTP_SESSION_VARS"));
- }
- MAKE_STD_ZVAL(PS(http_session_vars));
- array_init(PS(http_session_vars));
- ZEND_SET_GLOBAL_VAR_WITH_LENGTH("HTTP_SESSION_VARS",
sizeof("HTTP_SESSION_VARS"), PS(http_session_vars), 1, 0);
- ZEND_SET_GLOBAL_VAR_WITH_LENGTH("_SESSION", sizeof("_SESSION"),
PS(http_session_vars), 1, 0);
+ if(old_vars) {
+ zend_hash_del(&EG(symbol_table), "HTTP_SESSION_VARS",
sizeof("HTTP_SESSION_VARS"));
+ }
+ MAKE_STD_ZVAL(PS(http_session_vars));
+ array_init(PS(http_session_vars));
+ PS(http_session_vars)->refcount = 2;
+ zend_hash_update(&EG(symbol_table), "HTTP_SESSION_VARS",
sizeof("HTTP_SESSION_VARS"), &PS(http_session_vars), sizeof(zval *), NULL);
+ zend_hash_update(&EG(symbol_table), "_SESSION", sizeof("_SESSION"),
&PS(http_session_vars), sizeof(zval *), NULL);
}
}