From: Michael Wallner Date: Tue, 14 Feb 2012 19:31:54 +0000 (+0000) Subject: fix compat function not passing along input buffer with php_output_context_pass(... X-Git-Tag: php-5.4.0RC8~3 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=685a3c86c2c39450670120adc7f1e534350f89e8;p=php fix compat function not passing along input buffer with php_output_context_pass() if the output_handler_func does not set out_str --- diff --git a/main/output.c b/main/output.c index ffa7606d5d..138339ea96 100644 --- a/main/output.c +++ b/main/output.c @@ -1260,11 +1260,19 @@ static int php_output_handler_compat_func(void **handler_context, php_output_con 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, &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); + } - 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; return SUCCESS; } return FAILURE;