cvs: php-src(PHP_5_0) /ext/standard var.c
| From: | Ilia Alshanetsky | Date: | Sun, 29 Aug 2004 17:16:21 +0000 |
| Subject: | cvs: php-src(PHP_5_0) /ext/standard var.c | ||
| Groups: | php.cvs php.cvs | ||
| Request: | Send a blank email to php-cvs+get-28499@lists.php.net to get a copy of this message | ||
iliaa Sun Aug 29 13:16:21 2004 EDT
Modified files: (Branch: PHP_5_0)
/php-src/ext/standard var.c
Log:
MFH: Fixed leak when serializing protected & private properties.
http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.191.2.1&r2=1.191.2.2&ty=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.191.2.1 php-src/ext/standard/var.c:1.191.2.2
--- php-src/ext/standard/var.c:1.191.2.1 Sat Aug 21 10:11:56 2004
+++ php-src/ext/standard/var.c Sun Aug 29 13:16:21 2004
@@ -18,7 +18,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: var.c,v 1.191.2.1 2004/08/21 14:11:56 andrey Exp $ */
+/* $Id: var.c,v 1.191.2.2 2004/08/29 17:16:21 iliaa Exp $ */
/* {{{ includes
@@ -595,6 +595,7 @@
Z_STRVAL_PP(name), Z_STRLEN_PP(name) + 1, ce->type & ZEND_INTERNAL_CLASS);
if (zend_hash_find(Z_OBJPROP_PP(struc), priv_name, prop_name_length, (void *) &d) ==
SUCCESS) {
php_var_serialize_string(buf, priv_name, prop_name_length-1);
+ efree(priv_name);
php_var_serialize_intern(buf, d, var_hash TSRMLS_CC);
break;
}
@@ -602,12 +603,16 @@
Z_STRVAL_PP(name), Z_STRLEN_PP(name) + 1, ce->type & ZEND_INTERNAL_CLASS);
if (zend_hash_find(Z_OBJPROP_PP(struc), prot_name, prop_name_length, (void *) &d) ==
SUCCESS) {
php_var_serialize_string(buf, prot_name, prop_name_length - 1);
+ efree(prot_name);
php_var_serialize_intern(buf, d, var_hash TSRMLS_CC);
break;
}
php_error_docref(NULL TSRMLS_CC, E_NOTICE, "\"%s\" returned as member variable
from __sleep() but does not exist", Z_STRVAL_PP(name));
php_var_serialize_string(buf, Z_STRVAL_PP(name), Z_STRLEN_PP(name));
php_var_serialize_intern(buf, &nvalp, var_hash TSRMLS_CC);
+
+ efree(prot_name);
+ efree(priv_name);
} while (0);
} else {
php_var_serialize_string(buf, Z_STRVAL_PP(name), Z_STRLEN_PP(name));