|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2020-01-13 19:04 UTC] requinix@php.net
-Status: Open
+Status: Not a bug
[2020-01-13 19:04 UTC] requinix@php.net
[2020-01-13 19:32 UTC] nikic@php.net
-Status: Not a bug
+Status: Re-Opened
[2020-01-13 19:32 UTC] nikic@php.net
[2020-01-13 19:39 UTC] requinix@php.net
[2020-07-23 20:59 UTC] nikic@php.net
-Assigned To:
+Assigned To: nikic
[2020-07-24 10:23 UTC] nikic@php.net
[2020-07-24 10:23 UTC] nikic@php.net
-Status: Re-Opened
+Status: Closed
|
|||||||||||||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 03:00:02 2025 UTC |
Description: ------------ Taking a reference of an argument makes it also to be a reference in the stack trace, which allows to modify the value from any nesting level via 'args' key of debug_backtrace Test script: --------------- <?php function test(string $val) { $a = &$val; hackingHere(); print_r($val); } function hackingHere() { // we're able to modify the $val from here, even though the arg was not a reference debug_backtrace()[1]['args'][0] = 'Modified'; } test('Original'); Expected result: ---------------- Should print 'Original' Actual result: -------------- Prints 'Modified', because `hackingHere` unexpectedly gets access to the argument.