Skip to content

Commit bf54874

Browse files
committed
fix overwriting original vars when logging
Signed-off-by: Arthur Schiwon <blizzz@arthur-schiwon.de>
1 parent 6f1b612 commit bf54874

2 files changed

Lines changed: 6 additions & 3 deletions

File tree

lib/private/Log/ExceptionSerializer.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -208,14 +208,16 @@ private function filterTrace(array $trace) {
208208
}
209209

210210
private function removeValuesFromArgs($args, $values) {
211-
foreach ($args as &$arg) {
211+
$workArgs = [];
212+
foreach ($args as $arg) {
212213
if (in_array($arg, $values, true)) {
213214
$arg = '*** sensitive parameter replaced ***';
214215
} elseif (is_array($arg)) {
215216
$arg = $this->removeValuesFromArgs($arg, $values);
216217
}
218+
$workArgs[] = $arg;
217219
}
218-
return $args;
220+
return $workArgs;
219221
}
220222

221223
private function encodeTrace($trace) {

tests/lib/Log/ExceptionSerializerTest.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ public function testSerializer() {
6060
$secret = ['Secret'];
6161
$this->emit([&$secret]);
6262
} catch (\Exception $e) {
63-
$this->serializer->serializeException($e);
63+
$serializedData = $this->serializer->serializeException($e);
6464
$this->assertSame(['Secret'], $secret);
65+
$this->assertSame('*** sensitive parameters replaced ***', $serializedData['Trace'][0]['args'][0]);
6566
}
6667
}
6768
}

0 commit comments

Comments
 (0)