svn: /php/php-src/ branches/PHP_5_4/main/output.c trunk/main/output.c

From: Date: Tue, 14 Feb 2012 19:31:54 +0000
Subject: svn: /php/php-src/ branches/PHP_5_4/main/output.c trunk/main/output.c
Groups: php.cvs 
Request: Send a blank email to php-cvs+get-67670@lists.php.net to get a copy of this message
mike Tue, 14 Feb 2012 19:31:54 +0000 Revision: 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.c Modified: 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;

« previous php.cvs (#67670) next »