helly           Thu Sep  2 14:28:47 2004 EDT

  Modified files:              
    /php-src/ext/standard       var.c 
  Log:
  Fix memleak in serialize
  
http://cvs.php.net/diff.php/php-src/ext/standard/var.c?r1=1.193&r2=1.194&ty=u
Index: php-src/ext/standard/var.c
diff -u php-src/ext/standard/var.c:1.193 php-src/ext/standard/var.c:1.194
--- php-src/ext/standard/var.c:1.193    Sun Aug 29 13:16:20 2004
+++ php-src/ext/standard/var.c  Thu Sep  2 14:28:47 2004
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: var.c,v 1.193 2004/08/29 17:16:20 iliaa Exp $ */
+/* $Id: var.c,v 1.194 2004/09/02 18:28:47 helly Exp $ */
 
 
 /* {{{ includes 
@@ -598,6 +598,7 @@
                                                        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 @@
                                                        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));

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to