Re: svn: /php/php-src/ branches/PHP_5_4/main/output.c trunk/main/output.c
| From: | Christopher Jones | Date: | Tue, 14 Feb 2012 20:50:40 +0000 |
| Subject: | Re: svn: /php/php-src/ branches/PHP_5_4/main/output.c trunk/main/output.c | ||
| References: | 1 | Groups: | php.cvs |
| Request: | Send a blank email to php-cvs+get-67671@lists.php.net to get a copy of this message | ||
It would be great to have a NEWS entry and a testcase and a bug number.
Chris
On 02/14/2012 11:31 AM, Michael Wallner wrote:
-- Email: christopher.jones@oracle.com Tel: +1 650 506 8630 Blog: http://blogs.oracle.com/opal/mike Tue, 14 Feb 2012 19:31:54 +0000Revision: http://svn.php.net/viewvc?view=revision&revision=323219 Log: fix compat function not passing along input buffer with php_output_context_pass() if the output_handler_func does not set out_str Changed paths:U php/php-src/branches/PHP_5_4/main/output.c U php/php-src/trunk/main/output.cModified: php/php-src/branches/PHP_5_4/main/output.c =================================================================== --- php/php-src/branches/PHP_5_4/main/output.c 2012-02-14 18:35:06 UTC (rev 323218) +++ php/php-src/branches/PHP_5_4/main/output.c 2012-02-14 19:31:54 UTC (rev 323219) @@ -1260,11 +1260,19 @@ PHP_OUTPUT_TSRMLS(output_context); if (func) { - uint safe_out_len; + char *out_str = NULL; + uint out_len = 0; - func(output_context->in.data, output_context->in.used,&output_context->out.data,&safe_out_len, output_context->op TSRMLS_CC); - output_context->out.used = safe_out_len; - output_context->out.free = 1; + func(output_context->in.data, output_context->in.used,&out_str,&out_len, output_context->op TSRMLS_CC); + + if (out_str) { + output_context->out.data = out_str; + output_context->out.used = out_len; + output_context->out.free = 1; + } else { + php_output_context_pass(output_context); + } + return SUCCESS; } return FAILURE; Modified: php/php-src/trunk/main/output.c =================================================================== --- php/php-src/trunk/main/output.c 2012-02-14 18:35:06 UTC (rev 323218) +++ php/php-src/trunk/main/output.c 2012-02-14 19:31:54 UTC (rev 323219) @@ -1260,11 +1260,19 @@ PHP_OUTPUT_TSRMLS(output_context); if (func) { - uint safe_out_len; + char *out_str = NULL; + uint out_len = 0; - func(output_context->in.data, output_context->in.used,&output_context->out.data,&safe_out_len, output_context->op TSRMLS_CC); - output_context->out.used = safe_out_len; - output_context->out.free = 1; + func(output_context->in.data, output_context->in.used,&out_str,&out_len, output_context->op TSRMLS_CC); + + if (out_str) { + output_context->out.data = out_str; + output_context->out.used = out_len; + output_context->out.free = 1; + } else { + php_output_context_pass(output_context); + } + return SUCCESS; } return FAILURE;