From e32a409a9a10b22afc469cbd6d77a7737ef8ebef Mon Sep 17 00:00:00 2001 From: Eric Norris Date: Sat, 26 Oct 2019 12:34:43 -0400 Subject: [PATCH 1/4] Don't send X-Powered-By if headers sent --- main/main.c | 2 +- sapi/cgi/tests/bug69487.phpt | 2 -- tests/basic/025.phpt | 2 -- 3 files changed, 1 insertion(+), 5 deletions(-) diff --git a/main/main.c b/main/main.c index d24021a1fd0df..d8fc7330cacf9 100644 --- a/main/main.c +++ b/main/main.c @@ -1780,7 +1780,7 @@ int php_request_startup(void) CWDG(realpath_cache_size_limit) = 0; } - if (PG(expose_php)) { + if (PG(expose_php) && !SG(headers_sent)) { sapi_add_header(SAPI_PHP_VERSION_HEADER, sizeof(SAPI_PHP_VERSION_HEADER)-1, 1); } diff --git a/sapi/cgi/tests/bug69487.phpt b/sapi/cgi/tests/bug69487.phpt index 3ac3796826127..59058809adf29 100644 --- a/sapi/cgi/tests/bug69487.phpt +++ b/sapi/cgi/tests/bug69487.phpt @@ -14,7 +14,5 @@ var_dump(strlen(file_get_contents('php://input'))); Warning: Unknown: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0 Warning: Unknown: POST data can't be buffered; all data discarded in Unknown on line 0 - -Warning: Cannot modify header information - headers already sent in Unknown on line 0 bool(false) int(0) diff --git a/tests/basic/025.phpt b/tests/basic/025.phpt index 30d50c805d43b..f0edd702118e4 100644 --- a/tests/basic/025.phpt +++ b/tests/basic/025.phpt @@ -13,8 +13,6 @@ var_dump($_POST, $HTTP_RAW_POST_DATA); --EXPECTF-- Warning: Unknown: POST Content-Length of 2050 bytes exceeds the limit of 1024 bytes in Unknown on line 0 -Warning: Cannot modify header information - headers already sent in Unknown on line 0 - Warning: Undefined variable: HTTP_RAW_POST_DATA in %s on line %d array(0) { } From c6b5352dbb53810d5eaf4aa9d8501f07420e7fb8 Mon Sep 17 00:00:00 2001 From: Eric Norris Date: Sat, 26 Oct 2019 13:01:59 -0400 Subject: [PATCH 2/4] Include 'PHP Request Startup' in error messages --- ext/mbstring/tests/bug63447_001.phpt | 2 +- ext/mbstring/tests/bug63447_002.phpt | 2 +- ext/session/tests/rfc1867_sid_invalid.phpt | 12 ++++++------ main/main.c | 2 ++ sapi/cgi/tests/bug69487.phpt | 4 ++-- tests/basic/025.phpt | 2 +- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/ext/mbstring/tests/bug63447_001.phpt b/ext/mbstring/tests/bug63447_001.phpt index 51302994dbd1f..e87674de0b2fa 100644 --- a/ext/mbstring/tests/bug63447_001.phpt +++ b/ext/mbstring/tests/bug63447_001.phpt @@ -15,6 +15,6 @@ a=1&b=2&c=3&d=4&e=5&f=6 var_dump($_POST); ?> --EXPECT-- -Warning: Unknown: Input variables exceeded 5. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 +Warning: PHP Request Startup: Input variables exceeded 5. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 array(0) { } diff --git a/ext/mbstring/tests/bug63447_002.phpt b/ext/mbstring/tests/bug63447_002.phpt index e51089b794248..1f2fcdabfcbb9 100644 --- a/ext/mbstring/tests/bug63447_002.phpt +++ b/ext/mbstring/tests/bug63447_002.phpt @@ -15,6 +15,6 @@ a=1&b=2&c=3&d=4&e=5 var_dump($_POST); ?> --EXPECT-- -Warning: Unknown: Input variables exceeded 4. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 +Warning: PHP Request Startup: Input variables exceeded 4. To increase the limit change max_input_vars in php.ini. in Unknown on line 0 array(0) { } diff --git a/ext/session/tests/rfc1867_sid_invalid.phpt b/ext/session/tests/rfc1867_sid_invalid.phpt index 881b1d5bb4aa2..1095f81282c2f 100644 --- a/ext/session/tests/rfc1867_sid_invalid.phpt +++ b/ext/session/tests/rfc1867_sid_invalid.phpt @@ -48,17 +48,17 @@ var_dump($_SESSION["upload_progress_" . basename(__FILE__)]); session_destroy(); ?> --EXPECTF-- -Warning: Unknown: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 +Warning: PHP Request Startup: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 -Warning: Unknown: Failed to read session data: files (path: ) in Unknown on line 0 +Warning: PHP Request Startup: Failed to read session data: files (path: ) in Unknown on line 0 -Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0 +Warning: PHP Request Startup: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0 -Warning: Unknown: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 +Warning: PHP Request Startup: The session id is too long or contains illegal characters, valid characters are a-z, A-Z, 0-9 and '-,' in Unknown on line 0 -Warning: Unknown: Failed to read session data: files (path: ) in Unknown on line 0 +Warning: PHP Request Startup: Failed to read session data: files (path: ) in Unknown on line 0 -Warning: Unknown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0 +Warning: PHP Request Startup: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in Unknown on line 0 string(%d) "" bool(true) array(2) { diff --git a/main/main.c b/main/main.c index d8fc7330cacf9..383080cd6ecaf 100644 --- a/main/main.c +++ b/main/main.c @@ -984,6 +984,8 @@ PHPAPI ZEND_COLD void php_verror(const char *docref, const char *params, int typ function = "PHP Startup"; } else if (php_during_module_shutdown()) { function = "PHP Shutdown"; + } else if (PG(during_request_startup)) { + function = "PHP Request Startup"; } else if (EG(current_execute_data) && EG(current_execute_data)->func && ZEND_USER_CODE(EG(current_execute_data)->func->common.type) && diff --git a/sapi/cgi/tests/bug69487.phpt b/sapi/cgi/tests/bug69487.phpt index 59058809adf29..fcda1ac051b4b 100644 --- a/sapi/cgi/tests/bug69487.phpt +++ b/sapi/cgi/tests/bug69487.phpt @@ -11,8 +11,8 @@ var_dump(isset($_POST['foo'])); var_dump(strlen(file_get_contents('php://input'))); ?> --EXPECT-- -Warning: Unknown: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0 +Warning: PHP Request Startup: Unable to create temporary file, Check permissions in temporary files directory. in Unknown on line 0 -Warning: Unknown: POST data can't be buffered; all data discarded in Unknown on line 0 +Warning: PHP Request Startup: POST data can't be buffered; all data discarded in Unknown on line 0 bool(false) int(0) diff --git a/tests/basic/025.phpt b/tests/basic/025.phpt index f0edd702118e4..f1d96b57c2007 100644 --- a/tests/basic/025.phpt +++ b/tests/basic/025.phpt @@ -11,7 +11,7 @@ a=aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa var_dump($_POST, $HTTP_RAW_POST_DATA); ?> --EXPECTF-- -Warning: Unknown: POST Content-Length of 2050 bytes exceeds the limit of 1024 bytes in Unknown on line 0 +Warning: PHP Request Startup: POST Content-Length of 2050 bytes exceeds the limit of 1024 bytes in Unknown on line 0 Warning: Undefined variable: HTTP_RAW_POST_DATA in %s on line %d array(0) { From a143a49d9aef77f72a76120ca557ad4ec68d869a Mon Sep 17 00:00:00 2001 From: Eric Norris Date: Sat, 9 Nov 2019 14:41:08 -0500 Subject: [PATCH 3/4] Include 'PHP Request Shutdown' in error messages --- ext/imap/tests/bug46918.phpt | 2 +- ext/imap/tests/imap_open_error.phpt | 2 +- ext/session/tests/bug60634.phpt | 4 ++-- ext/session/tests/bug60634_error_3.phpt | 2 +- ext/session/tests/bug60634_error_4.phpt | 2 +- main/main.c | 13 ++++++------- 6 files changed, 12 insertions(+), 13 deletions(-) diff --git a/ext/imap/tests/bug46918.phpt b/ext/imap/tests/bug46918.phpt index 41993c429286c..c6de570e4cea7 100644 --- a/ext/imap/tests/bug46918.phpt +++ b/ext/imap/tests/bug46918.phpt @@ -72,4 +72,4 @@ array ( 'host' => '.SYNTAX-ERROR.', ), ) -Notice: Unknown: Unexpected characters at end of address: @two (errflg=3) in Unknown on line 0 +Notice: PHP Request Shutdown: Unexpected characters at end of address: @two (errflg=3) in Unknown on line 0 diff --git a/ext/imap/tests/imap_open_error.phpt b/ext/imap/tests/imap_open_error.phpt index b94c11d797afd..e2d904a778b75 100644 --- a/ext/imap/tests/imap_open_error.phpt +++ b/ext/imap/tests/imap_open_error.phpt @@ -44,4 +44,4 @@ Warning: imap_open(): Couldn't open stream in %s on line %d Warning: imap_open(): Retries must be greater or equal to 0 in %s on line %d -Notice: Unknown: Can't open mailbox : no such mailbox (errflg=2) in Unknown on line 0 +Notice: PHP Request Shutdown: Can't open mailbox : no such mailbox (errflg=2) in Unknown on line 0 diff --git a/ext/session/tests/bug60634.phpt b/ext/session/tests/bug60634.phpt index 064f29a0d2db3..d1d72117599a0 100644 --- a/ext/session/tests/bug60634.phpt +++ b/ext/session/tests/bug60634.phpt @@ -53,7 +53,7 @@ echo "um, hi\n"; --EXPECT-- write: goodbye cruel world -Warning: Unknown: Cannot call session save handler in a recursive manner in Unknown on line 0 +Warning: PHP Request Shutdown: Cannot call session save handler in a recursive manner in Unknown on line 0 -Warning: Unknown: Failed to write session data using user defined save handler. (session.save_path: ) in Unknown on line 0 +Warning: PHP Request Shutdown: Failed to write session data using user defined save handler. (session.save_path: ) in Unknown on line 0 close: goodbye cruel world diff --git a/ext/session/tests/bug60634_error_3.phpt b/ext/session/tests/bug60634_error_3.phpt index f97da00dce235..e8a8c8a1790ad 100644 --- a/ext/session/tests/bug60634_error_3.phpt +++ b/ext/session/tests/bug60634_error_3.phpt @@ -50,4 +50,4 @@ Stack trace: #1 {main} thrown in %s on line %d -Warning: Unknown: Cannot call session save handler in a recursive manner in Unknown on line 0 +Warning: PHP Request Shutdown: Cannot call session save handler in a recursive manner in Unknown on line 0 diff --git a/ext/session/tests/bug60634_error_4.phpt b/ext/session/tests/bug60634_error_4.phpt index ca8672e4f444d..a76cd9afcfa65 100644 --- a/ext/session/tests/bug60634_error_4.phpt +++ b/ext/session/tests/bug60634_error_4.phpt @@ -50,4 +50,4 @@ Stack trace: #1 {main} thrown in %s on line %d -Warning: Unknown: Cannot call session save handler in a recursive manner in Unknown on line 0 +Warning: PHP Request Shutdown: Cannot call session save handler in a recursive manner in Unknown on line 0 diff --git a/main/main.c b/main/main.c index 383080cd6ecaf..d6d4aa6f194a5 100644 --- a/main/main.c +++ b/main/main.c @@ -1016,14 +1016,13 @@ PHPAPI ZEND_COLD void php_verror(const char *docref, const char *params, int typ default: function = "Unknown"; } + } else if ((function = get_active_function_name()) && strlen(function)) { + is_function = 1; + class_name = get_active_class_name(&space); + } else if (EG(flags) & EG_FLAGS_IN_SHUTDOWN) { + function = "PHP Request Shutdown"; } else { - function = get_active_function_name(); - if (!function || !strlen(function)) { - function = "Unknown"; - } else { - is_function = 1; - class_name = get_active_class_name(&space); - } + function = "Unknown"; } /* if we still have memory then format the origin */ From f34df47ececf5dca11700f52a6ee795ac91a45d9 Mon Sep 17 00:00:00 2001 From: Eric Norris Date: Sat, 2 Jul 2022 18:37:25 -0400 Subject: [PATCH 4/4] chore: fix error messages after merge --- ext/session/tests/session_set_save_handler_iface_002.phpt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ext/session/tests/session_set_save_handler_iface_002.phpt b/ext/session/tests/session_set_save_handler_iface_002.phpt index 7f826190e319e..379b6138c663f 100644 --- a/ext/session/tests/session_set_save_handler_iface_002.phpt +++ b/ext/session/tests/session_set_save_handler_iface_002.phpt @@ -89,4 +89,4 @@ bool(true) session_set_save_handler(): Argument #1 ($open) must be of type SessionHandlerInterface, MySession2 given good handler writing -Deprecated: Unknown: Session callback must have a return value of type bool, int returned in Unknown on line 0 +Deprecated: PHP Request Shutdown: Session callback must have a return value of type bool, int returned in Unknown on line 0