Bug #70662 [NEW]: Duplicate array key via undefined index error handler

From: Date: Wed, 07 Oct 2015 20:40:28 +0000
Subject: Bug #70662 [NEW]: Duplicate array key via undefined index error handler
Groups: php.bugs 
Request: Send a blank email to php-bugs+get-196461@lists.php.net to get a copy of this message
From: nikic Operating system: PHP version: 7.0.0RC4 Package: Scripting Engine problem Bug Type: Bug Bug description:Duplicate array key via undefined index error handler Description: ------------ In http://lxr.php.net/xref/PHP_TRUNK/Zend/zend_execute.c#1548 and multiple related places we use find+add_new. However in RW mode a notice is emitted between both operation, which can be used to modify the array and violate add_new preconditions. Test script: --------------- <?php $a = []; set_error_handler(function() use(&$a) { $a['b'] = 2; }); $a['b'] += 1; var_dump($a); Expected result: ---------------- // One of array(1) { ["b"]=> int(1) } // or array(1) { ["b"]=> int(2) } Actual result: -------------- array(2) { ["b"]=> int(2) ["b"]=> int(1) } -- Edit bug report at https://bugs.php.net/bug.php?id=70662&edit=1 -- Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=70662&r=trysnapshot54 Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=70662&r=trysnapshot55 Try a snapshot (trunk): https://bugs.php.net/fix.php?id=70662&r=trysnapshottrunk Fixed in SVN: https://bugs.php.net/fix.php?id=70662&r=fixed Fixed in release: https://bugs.php.net/fix.php?id=70662&r=alreadyfixed Need backtrace: https://bugs.php.net/fix.php?id=70662&r=needtrace Need Reproduce Script: https://bugs.php.net/fix.php?id=70662&r=needscript Try newer version: https://bugs.php.net/fix.php?id=70662&r=oldversion Not developer issue: https://bugs.php.net/fix.php?id=70662&r=support Expected behavior: https://bugs.php.net/fix.php?id=70662&r=notwrong Not enough info: https://bugs.php.net/fix.php?id=70662&r=notenoughinfo Submitted twice: https://bugs.php.net/fix.php?id=70662&r=submittedtwice register_globals: https://bugs.php.net/fix.php?id=70662&r=globals PHP 4 support discontinued: https://bugs.php.net/fix.php?id=70662&r=php4 Daylight Savings: https://bugs.php.net/fix.php?id=70662&r=dst IIS Stability: https://bugs.php.net/fix.php?id=70662&r=isapi Install GNU Sed: https://bugs.php.net/fix.php?id=70662&r=gnused Floating point limitations: https://bugs.php.net/fix.php?id=70662&r=float No Zend Extensions: https://bugs.php.net/fix.php?id=70662&r=nozend MySQL Configuration Error: https://bugs.php.net/fix.php?id=70662&r=mysqlcfg

« previous php.bugs (#196461) next »