From a9ddb39aac97ee02b6ee64b910e5f189ae4adb4c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Mon, 20 Feb 2017 10:04:38 +0100 Subject: [PATCH 1/2] Show phpMyAdmin errors even with error_reporting set to 0 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixes #13021 Signed-off-by: Michal Čihař --- ChangeLog | 1 + libraries/ErrorHandler.php | 8 +++++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index c7201e5fdd..ac8e8829a0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -82,6 +82,7 @@ phpMyAdmin - ChangeLog - issue #13010 Copy database: SQL error for copying PMADB metadata - issue #13002 Fixed OpenDocument exports - issue #13000 Align NULL values according to the column alignment +- issue #13021 Show phpMyAdmin errors even with error_reporting set to 0 4.6.6 (2017-01-23) - issue #12759 Fix Notice regarding 'Undefined index: old_usergroup' diff --git a/libraries/ErrorHandler.php b/libraries/ErrorHandler.php index 2bf6b7b056..e9cb58a1ce 100644 --- a/libraries/ErrorHandler.php +++ b/libraries/ErrorHandler.php @@ -28,6 +28,11 @@ class ErrorHandler */ protected $hide_location = false; + /** + * Initial error reporting state + */ + protected $error_reporting = 0; + /** * Constructor - set PHP error handler * @@ -43,6 +48,7 @@ class ErrorHandler if (!defined('TESTSUITE')) { set_error_handler(array($this, 'handleError')); } + $this->error_reporting = error_reporting(); } /** @@ -150,7 +156,7 @@ class ErrorHandler public function handleError($errno, $errstr, $errfile, $errline) { // check if Error Control Operator (@) was used. - if (error_reporting() == 0) { + if (error_reporting() == 0 && $this->error_reporting != 0) { return; } $this->addError($errstr, $errno, $errfile, $errline, true); From ab6e961c34aa2475454d3728cdade22377ec8f53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michal=20=C4=8Ciha=C5=99?= Date: Mon, 20 Feb 2017 10:07:41 +0100 Subject: [PATCH 2/2] Show user errors even if normal errors are suppressed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit I'm not sure we're hitting this case somewhere, but it makes sense to get this fixed. Issue #13021 Signed-off-by: Michal Čihař --- libraries/ErrorHandler.php | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/libraries/ErrorHandler.php b/libraries/ErrorHandler.php index e9cb58a1ce..0a3e33a06d 100644 --- a/libraries/ErrorHandler.php +++ b/libraries/ErrorHandler.php @@ -155,8 +155,14 @@ class ErrorHandler */ public function handleError($errno, $errstr, $errfile, $errline) { - // check if Error Control Operator (@) was used. - if (error_reporting() == 0 && $this->error_reporting != 0) { + /** + * Check if Error Control Operator (@) was used, but still show + * user errors even in this case. + */ + if (error_reporting() == 0 && + $this->error_reporting != 0 && + ($errno & (E_USER_WARNING | E_USER_ERROR | E_USER_NOTICE)) == 0 + ) { return; } $this->addError($errstr, $errno, $errfile, $errline, true);