[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/main/ output.c

2010-12-03 Thread Jani Taskinen
jani Fri, 03 Dec 2010 13:20:13 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=305939

Log:
- Fix leaks and crash bug when passing the callback as variable

Changed paths:
U   php/php-src/branches/PHP_5_3/main/output.c

Modified: php/php-src/branches/PHP_5_3/main/output.c
===
--- php/php-src/branches/PHP_5_3/main/output.c  2010-12-03 10:15:06 UTC (rev 
305938)
+++ php/php-src/branches/PHP_5_3/main/output.c  2010-12-03 13:20:13 UTC (rev 
305939)
@@ -745,7 +745,7 @@
long chunk_size=0;
zend_bool erase=1;

-   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |zlb, 
output_handler, chunk_size, erase) == FAILURE) {
+   if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |z/lb, 
output_handler, chunk_size, erase) == FAILURE) {
return;
}


-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Re: [PHP-CVS] svn: /php/php-src/branches/PHP_5_3/main/ output.c

2010-12-03 Thread Johannes Schlüter
Test? :-)

And thanks for the fix.

On Fri, 2010-12-03 at 13:20 +, Jani Taskinen wrote:
 jani Fri, 03 Dec 2010 13:20:13 +
 
 Revision: http://svn.php.net/viewvc?view=revisionrevision=305939
 
 Log:
 - Fix leaks and crash bug when passing the callback as variable
 
 Changed paths:
 U   php/php-src/branches/PHP_5_3/main/output.c
 
 Modified: php/php-src/branches/PHP_5_3/main/output.c
 ===
 --- php/php-src/branches/PHP_5_3/main/output.c2010-12-03 10:15:06 UTC 
 (rev 305938)
 +++ php/php-src/branches/PHP_5_3/main/output.c2010-12-03 13:20:13 UTC 
 (rev 305939)
 @@ -745,7 +745,7 @@
   long chunk_size=0;
   zend_bool erase=1;
 
 - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |zlb, 
 output_handler, chunk_size, erase) == FAILURE) {
 + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |z/lb, 
 output_handler, chunk_size, erase) == FAILURE) {
   return;
   }
 
 
 -- 
 PHP CVS Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



Re: [PHP-CVS] svn: /php/php-src/branches/PHP_5_3/main/ output.c

2010-12-03 Thread Jani Taskinen
Done.

--Jani

On Dec 3, 2010, at 3:39 PM, Johannes Schlüter wrote:

 Test? :-)
 
 And thanks for the fix.
 
 On Fri, 2010-12-03 at 13:20 +, Jani Taskinen wrote:
 jani Fri, 03 Dec 2010 13:20:13 +
 
 Revision: http://svn.php.net/viewvc?view=revisionrevision=305939
 
 Log:
 - Fix leaks and crash bug when passing the callback as variable
 
 Changed paths:
U   php/php-src/branches/PHP_5_3/main/output.c
 
 Modified: php/php-src/branches/PHP_5_3/main/output.c
 ===
 --- php/php-src/branches/PHP_5_3/main/output.c   2010-12-03 10:15:06 UTC 
 (rev 305938)
 +++ php/php-src/branches/PHP_5_3/main/output.c   2010-12-03 13:20:13 UTC 
 (rev 305939)
 @@ -745,7 +745,7 @@
  long chunk_size=0;
  zend_bool erase=1;
 
 -if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |zlb, 
 output_handler, chunk_size, erase) == FAILURE) {
 +if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, |z/lb, 
 output_handler, chunk_size, erase) == FAILURE) {
  return;
  }
 
 
 -- 
 PHP CVS Mailing List (http://www.php.net/)
 To unsubscribe, visit: http://www.php.net/unsub.php
 
 


--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php



[PHP-CVS] svn: /php/php-src/branches/PHP_5_3/ main/output.c tests/output/bug46897.phpt tests/output/ob_clean_basic_001.phpt tests/output/ob_end_clean_basic_001.phpt tests/output/ob_end_flush_basic_001

2010-12-03 Thread Jani Taskinen
jani Fri, 03 Dec 2010 16:04:24 +

Revision: http://svn.php.net/viewvc?view=revisionrevision=305950

Log:
- CS + reorder to match trunk better, removed trailing dots from error messages

Changed paths:
U   php/php-src/branches/PHP_5_3/main/output.c
U   php/php-src/branches/PHP_5_3/tests/output/bug46897.phpt
U   php/php-src/branches/PHP_5_3/tests/output/ob_clean_basic_001.phpt
U   php/php-src/branches/PHP_5_3/tests/output/ob_end_clean_basic_001.phpt
U   php/php-src/branches/PHP_5_3/tests/output/ob_end_flush_basic_001.phpt
U   php/php-src/branches/PHP_5_3/tests/output/ob_flush_basic_001.phpt
U   php/php-src/branches/PHP_5_3/tests/output/ob_get_level_basic_001.phpt
U   
php/php-src/branches/PHP_5_3/tests/output/ob_start_basic_unerasable_002.phpt
U   
php/php-src/branches/PHP_5_3/tests/output/ob_start_basic_unerasable_003.phpt
U   
php/php-src/branches/PHP_5_3/tests/output/ob_start_basic_unerasable_004.phpt
U   
php/php-src/branches/PHP_5_3/tests/output/ob_start_basic_unerasable_005.phpt

Modified: php/php-src/branches/PHP_5_3/main/output.c
===
--- php/php-src/branches/PHP_5_3/main/output.c	2010-12-03 16:02:47 UTC (rev 305949)
+++ php/php-src/branches/PHP_5_3/main/output.c	2010-12-03 16:04:24 UTC (rev 305950)
@@ -1,4 +1,4 @@
-/*
+/*
+--+
| PHP Version 5|
+--+
@@ -61,7 +61,7 @@
 /* {{{ php_output_init_globals */
 static void php_output_init_globals(php_output_globals *output_globals_p TSRMLS_DC)
 {
- 	OG(php_body_write) = php_default_output_func;
+	OG(php_body_write) = php_default_output_func;
 	OG(php_header_write) = php_default_output_func;
 	OG(implicit_flush) = 0;
 	OG(output_start_filename) = NULL;
@@ -69,22 +69,20 @@
 }
 /* }}} */

-
 /* {{{ php_output_startup
-   Start output layer */
+ * Start output layer */
 PHPAPI void php_output_startup(void)
 {
 #ifdef ZTS
 	ts_allocate_id(output_globals_id, sizeof(php_output_globals), (ts_allocate_ctor) php_output_init_globals, NULL);
-#else
+#else
 	php_output_init_globals(output_globals TSRMLS_CC);
 #endif
 }
 /* }}} */

-
 /* {{{ php_output_activate
-   Initilize output global for activation */
+ * Initilize output global for activation */
 PHPAPI void php_output_activate(TSRMLS_D)
 {
 	OG(php_body_write) = php_ub_body_write;
@@ -97,15 +95,6 @@
 }
 /* }}} */

-
-/* {{{ php_output_set_status
-   Toggle output status.  Do NOT use in application code, only in SAPIs where appropriate. */
-PHPAPI void php_output_set_status(zend_bool status TSRMLS_DC)
-{
-	OG(disable_output) = !status;
-}
-/* }}} */
-
 /* {{{ php_output_register_constants */
 void php_output_register_constants(TSRMLS_D)
 {
@@ -115,12 +104,19 @@
 }
 /* }}} */

+/* {{{ php_output_set_status
+ * Toggle output status.  Do NOT use in application code, only in SAPIs where appropriate. */
+PHPAPI void php_output_set_status(zend_bool status TSRMLS_DC)
+{
+	OG(disable_output) = !status;
+}
+/* }}} */

 /* {{{ php_body_write
  * Write body part */
 PHPAPI int php_body_write(const char *str, uint str_length TSRMLS_DC)
 {
-	return OG(php_body_write)(str, str_length TSRMLS_CC);
+	return OG(php_body_write)(str, str_length TSRMLS_CC);
 }
 /* }}} */

@@ -219,7 +215,7 @@
 	 fclose(fp);
  }
 #endif
-
+
 	if (OG(active_ob_buffer).internal_output_handler) {
 		final_buffer = OG(active_ob_buffer).internal_output_handler_buffer;
 		final_buffer_length = OG(active_ob_buffer).internal_output_handler_buffer_size;
@@ -343,7 +339,7 @@
  */
 PHPAPI void php_start_implicit_flush(TSRMLS_D)
 {
-	OG(implicit_flush)=1;
+	OG(implicit_flush) = 1;
 }
 /* }}} */

@@ -351,15 +347,31 @@
  */
 PHPAPI void php_end_implicit_flush(TSRMLS_D)
 {
-	OG(implicit_flush)=0;
+	OG(implicit_flush) = 0;
 }
 /* }}} */

+/* {{{ char *php_get_output_start_filename(TSRMLS_D)
+ *  Return filename start output something */
+PHPAPI char *php_get_output_start_filename(TSRMLS_D)
+{
+	return OG(output_start_filename);
+}
+/* }}} */
+
+/* {{{ char *php_get_output_start_lineno(TSRMLS_D)
+ * Return line number start output something */
+PHPAPI int php_get_output_start_lineno(TSRMLS_D)
+{
+	return OG(output_start_lineno);
+}
+/* }}} */
+
 /* {{{ php_ob_set_internal_handler
  */
 PHPAPI void php_ob_set_internal_handler(php_output_handler_func_t internal_output_handler, uint buffer_size, char *handler_name, zend_bool erase TSRMLS_DC)
 {
-	if (OG(ob_nesting_level)==0 || OG(active_ob_buffer).internal_output_handler || strcmp(OG(active_ob_buffer).handler_name, OB_DEFAULT_HANDLER_NAME)) {
+	if (OG(ob_nesting_level) == 0 || OG(active_ob_buffer).internal_output_handler || strcmp(OG(active_ob_buffer).handler_name, OB_DEFAULT_HANDLER_NAME)) {
 		php_start_ob_buffer(NULL, buffer_size, erase TSRMLS_CC);
 	}

@@ -398,8 +410,7 @@
 /*