diff options
author | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2022-06-16 13:30:52 +0200 |
---|---|---|
committer | Arthur Schiwon <blizzz@arthur-schiwon.de> | 2022-06-16 18:36:58 +0200 |
commit | 891c10d09da333e6af172bacd0c28540fd7a7032 (patch) | |
tree | 93e3093f9cffe1dac18bbb43e83fa17dd31fde22 | |
parent | 09a5947a6dbfafc90ca343a5f48c192d29bd9924 (diff) | |
download | nextcloud-server-891c10d09da333e6af172bacd0c28540fd7a7032.tar.gz nextcloud-server-891c10d09da333e6af172bacd0c28540fd7a7032.zip |
fix overwriting original vars when logging
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
-rw-r--r-- | lib/private/Log/ExceptionSerializer.php | 6 | ||||
-rw-r--r-- | tests/lib/Log/ExceptionSerializerTest.php | 3 |
2 files changed, 6 insertions, 3 deletions
diff --git a/lib/private/Log/ExceptionSerializer.php b/lib/private/Log/ExceptionSerializer.php index dab134b26a4..a792f966eda 100644 --- a/lib/private/Log/ExceptionSerializer.php +++ b/lib/private/Log/ExceptionSerializer.php @@ -208,14 +208,16 @@ class ExceptionSerializer { } private function removeValuesFromArgs($args, $values) { - foreach ($args as &$arg) { + $workArgs = []; + foreach ($args as $arg) { if (in_array($arg, $values, true)) { $arg = '*** sensitive parameter replaced ***'; } elseif (is_array($arg)) { $arg = $this->removeValuesFromArgs($arg, $values); } + $workArgs[] = $arg; } - return $args; + return $workArgs; } private function encodeTrace($trace) { diff --git a/tests/lib/Log/ExceptionSerializerTest.php b/tests/lib/Log/ExceptionSerializerTest.php index 1b7bfee2c87..f8cc6b77ee6 100644 --- a/tests/lib/Log/ExceptionSerializerTest.php +++ b/tests/lib/Log/ExceptionSerializerTest.php @@ -60,8 +60,9 @@ class ExceptionSerializerTest extends TestCase { $secret = ['Secret']; $this->emit([&$secret]); } catch (\Exception $e) { - $this->serializer->serializeException($e); + $serializedData = $this->serializer->serializeException($e); $this->assertSame(['Secret'], $secret); + $this->assertSame('*** sensitive parameters replaced ***', $serializedData['Trace'][0]['args'][0]); } } } |