moriyoshi               Wed Apr  2 19:50:17 2003 EDT

  Modified files:              
    /php4/main  output.c 
  Log:
  Fixed memleak in output buffering facility
  
  
Index: php4/main/output.c
diff -u php4/main/output.c:1.151 php4/main/output.c:1.152
--- php4/main/output.c:1.151    Tue Apr  1 14:14:47 2003
+++ php4/main/output.c  Wed Apr  2 19:50:17 2003
@@ -18,7 +18,7 @@
    +----------------------------------------------------------------------+
 */
 
-/* $Id: output.c,v 1.151 2003/04/01 19:14:47 sas Exp $ */
+/* $Id: output.c,v 1.152 2003/04/03 00:50:17 moriyoshi Exp $ */
 
 #include "php.h"
 #include "ext/standard/head.h"
@@ -483,10 +483,10 @@
                /* do we have array(object,method) */
                if (zend_is_callable(output_handler, 1, &handler_name)) {
                        SEPARATE_ZVAL(&output_handler);
-                       output_handler->refcount++;
                        result = php_ob_init_named(initial_size, block_size, 
handler_name, output_handler, chunk_size, erase TSRMLS_CC);
                        efree(handler_name);
                } else {
+                       efree(handler_name);
                        /* init all array elements recursively */
                        
zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(output_handler), &pos);
                        while 
(zend_hash_get_current_data_ex(Z_ARRVAL_P(output_handler), (void **)&tmp, &pos) == 
SUCCESS) {
@@ -500,7 +500,6 @@
        } else {
                if (output_handler) {
                        SEPARATE_ZVAL(&output_handler);
-                       output_handler->refcount++;
                }
                result = php_ob_init_named(initial_size, block_size, 
OB_DEFAULT_HANDLER_NAME, output_handler, chunk_size, erase TSRMLS_CC);
        }



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

Reply via email to