Anomie has uploaded a new change for review.

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


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/72/91872/1

diff --git a/includes/Exception.php b/includes/Exception.php
index fba857f..756e367 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/91872
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: master
Gerrit-Owner: Anomie <[email protected]>

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

Reply via email to