Merge pull request #6661 from rubencm/ticket/17356

[ticket/17356] Correctly handle errors hidden with at
This commit is contained in:
Marc Alexander 2024-07-05 21:56:34 +02:00
commit 48a233e415
No known key found for this signature in database
GPG key ID: 50E0D2423696F995
2 changed files with 18 additions and 2 deletions

View file

@ -3028,8 +3028,16 @@ function msg_handler($errno, $msg_text, $errfile, $errline)
global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log; global $phpbb_root_path, $msg_title, $msg_long_text, $phpbb_log;
global $phpbb_container; global $phpbb_container;
// https://www.php.net/manual/en/language.operators.errorcontrol.php
// error_reporting() return a different error code inside the error handler after php 8.0
$suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE;
if (PHP_VERSION_ID < 80000)
{
$suppresed = 0;
}
// Do not display notices if we suppress them via @ // Do not display notices if we suppress them via @
if (error_reporting() == 0 && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE) if (error_reporting() == $suppresed && $errno != E_USER_ERROR && $errno != E_USER_WARNING && $errno != E_USER_NOTICE)
{ {
return; return;
} }

View file

@ -51,7 +51,15 @@ function installer_msg_handler($errno, $msg_text, $errfile, $errline)
{ {
global $phpbb_installer_container, $msg_long_text; global $phpbb_installer_container, $msg_long_text;
if (error_reporting() == 0) // Acording to https://www.php.net/manual/en/language.operators.errorcontrol.php
// error_reporting() return a different error code inside the error handler after php 8.0
$suppresed = E_ERROR | E_CORE_ERROR | E_COMPILE_ERROR | E_USER_ERROR | E_RECOVERABLE_ERROR | E_PARSE;
if (PHP_VERSION_ID < 80000)
{
$suppresed = 0;
}
if (error_reporting() == $suppresed)
{ {
return true; return true;
} }