]> granicus.if.org Git - php/commitdiff
MFH(r-1.152): fixed memleak in output buffering facility
authorMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 3 Apr 2003 00:51:14 +0000 (00:51 +0000)
committerMoriyoshi Koizumi <moriyoshi@php.net>
Thu, 3 Apr 2003 00:51:14 +0000 (00:51 +0000)
main/output.c

index 72b509cb583fdbe8c08ada2b1f0c249ff2f317c6..2c7571bdc0b39eb9140a87ae437c6c99ae34bb22 100644 (file)
@@ -483,10 +483,10 @@ static int php_ob_init(uint initial_size, uint block_size, zval *output_handler,
                /* 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 @@ static int php_ob_init(uint initial_size, uint block_size, zval *output_handler,
        } 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);
        }