Hashar has uploaded a new change for review.

  https://gerrit.wikimedia.org/r/93701


Change subject: Distinguish redactions from the string "REDACTED" in 
formatRedactedTrace
......................................................................

Distinguish redactions from the string "REDACTED" in formatRedactedTrace

In the output of MWExceptionHandler::formatRedactedTrace, it is not
possible to determine (without checking the configuration) whether arg 0
in "foo('REDACTED')" was redacted or was merely passed the string
"REDACTED".

This patch changes redaction to instead output "foo(REDACTED)" in the
case of redaction. This parallels the situation with arrays and objects,
where for example "foo(Array)" was passed an array while "foo('Array')"
was passed the string "Array".

Change-Id: Ia2a761687c69b630afa3ccd8668b06b28e3ecdd3
---
M includes/Exception.php
1 file changed, 7 insertions(+), 2 deletions(-)


  git pull ssh://gerrit.wikimedia.org:29418/mediawiki/core 
refs/changes/01/93701/1

diff --git a/includes/Exception.php b/includes/Exception.php
index fba857f..a91f865 100644
--- a/includes/Exception.php
+++ b/includes/Exception.php
@@ -686,6 +686,9 @@
                global $wgRedactedFunctionArguments;
                $finalExceptionText = '';
 
+               // Unique value to indicate redacted parameters
+               $redacted = new stdClass();
+
                foreach ( $e->getTrace() as $i => $call ) {
                        $checkFor = array();
                        if ( isset( $call['class'] ) ) {
@@ -700,7 +703,7 @@
                        foreach ( $checkFor as $check ) {
                                if ( isset( 
$wgRedactedFunctionArguments[$check] ) ) {
                                        foreach ( 
(array)$wgRedactedFunctionArguments[$check] as $argNo ) {
-                                               $call['args'][$argNo] = 
'REDACTED';
+                                               $call['args'][$argNo] = 
$redacted;
                                        }
                                }
                        }
@@ -722,7 +725,9 @@
                        $args = array();
                        if ( isset( $call['args'] ) ) {
                                foreach ( $call['args'] as $arg ) {
-                                       if ( is_object( $arg ) ) {
+                                       if ( $arg === $redacted ) {
+                                               $args[] = 'REDACTED';
+                                       } elseif ( is_object( $arg ) ) {
                                                $args[] = 'Object(' . 
get_class( $arg ) . ')';
                                        } elseif( is_array( $arg ) ) {
                                                $args[] = 'Array';

-- 
To view, visit https://gerrit.wikimedia.org/r/93701
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ia2a761687c69b630afa3ccd8668b06b28e3ecdd3
Gerrit-PatchSet: 1
Gerrit-Project: mediawiki/core
Gerrit-Branch: REL1_22
Gerrit-Owner: Hashar <[email protected]>
Gerrit-Reviewer: Anomie <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to