edink Fri Jun 25 08:51:38 2004 EDT Modified files: (Branch: PHP_4_3) /php-src/sapi/apache2handler sapi_apache2.c Log: Memory leak fix (patch by Joe Orton) http://cvs.php.net/diff.php/php-src/sapi/apache2handler/sapi_apache2.c?r1=1.1.2.31&r2=1.1.2.32&ty=u Index: php-src/sapi/apache2handler/sapi_apache2.c diff -u php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.31 php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.32 --- php-src/sapi/apache2handler/sapi_apache2.c:1.1.2.31 Thu Jun 17 20:37:02 2004 +++ php-src/sapi/apache2handler/sapi_apache2.c Fri Jun 25 08:51:38 2004 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: sapi_apache2.c,v 1.1.2.31 2004/06/18 00:37:02 iliaa Exp $ */ +/* $Id: sapi_apache2.c,v 1.1.2.32 2004/06/25 12:51:38 edink Exp $ */ #include <fcntl.h> @@ -67,30 +67,15 @@ static int php_apache_sapi_ub_write(const char *str, uint str_length TSRMLS_DC) { - apr_bucket *bucket; - apr_bucket_brigade *brigade; request_rec *r; php_struct *ctx; - char *copy_str; - - if (str_length == 0) { - return 0; - } ctx = SG(server_context); r = ctx->r; - brigade = ctx->brigade; - copy_str = apr_pmemdup( r->pool, str, str_length); - bucket = apr_bucket_pool_create(copy_str, str_length, r->pool, r->connection->bucket_alloc); - - APR_BRIGADE_INSERT_TAIL(brigade, bucket); - - if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS || r->connection->aborted) { + if (ap_rwrite(str, str_length, r) < 0) { php_handle_aborted_connection(); } - /* Ensure this brigade is empty for the next usage. */ - apr_brigade_cleanup(brigade); return str_length; /* we always consume all the data passed to us. */ } @@ -246,8 +231,6 @@ php_apache_sapi_flush(void *server_context) { php_struct *ctx; - apr_bucket_brigade *brigade; - apr_bucket *bucket; request_rec *r; TSRMLS_FETCH(); @@ -260,20 +243,15 @@ } r = ctx->r; - brigade = ctx->brigade; sapi_send_headers(TSRMLS_C); r->status = SG(sapi_headers).http_response_code; SG(headers_sent) = 1; - /* Send a flush bucket down the filter chain. */ - bucket = apr_bucket_flush_create(r->connection->bucket_alloc); - APR_BRIGADE_INSERT_TAIL(brigade, bucket); - if (ap_pass_brigade(r->output_filters, brigade) != APR_SUCCESS || r->connection->aborted) { + if (ap_rflush(r) < 0 || r->connection->aborted) { php_handle_aborted_connection(); } - apr_brigade_cleanup(brigade); } static void php_apache_sapi_log_message(char *msg)
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php