summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-09-02 18:28:47 +0000
committerMarcus Boerger <helly@php.net>2004-09-02 18:28:47 +0000
commit72000ecda9b538bdf65745cf450647a048bb67c4 (patch)
tree2e975aae7e611ed1e2553b93873231f797069b31 /ext
parent94c4feef1235473e0e49fbd841e5a70fe2f43602 (diff)
downloadphp-git-72000ecda9b538bdf65745cf450647a048bb67c4.tar.gz
Fix memleak in serialize
Diffstat (limited to 'ext')
-rw-r--r--ext/standard/var.c5
1 files changed, 2 insertions, 3 deletions
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 525a1db432..81c80cba56 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -598,6 +598,7 @@ static void php_var_serialize_class(smart_str *buf, zval **struc, zval *retval_p
php_var_serialize_intern(buf, d, var_hash TSRMLS_CC);
break;
}
+ efree(priv_name);
zend_mangle_property_name(&prot_name, &prop_name_length, "*", 1,
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) {
@@ -606,12 +607,10 @@ static void php_var_serialize_class(smart_str *buf, zval **struc, zval *retval_p
php_var_serialize_intern(buf, d, var_hash TSRMLS_CC);
break;
}
+ efree(prot_name);
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));