Bug #69955 [NEW]: Segfault when trying to combine [] and assign-op on ArrayAccess object
| From: | stas@php.net | Date: | Sun, 28 Jun 2015 05:20:32 +0000 |
| Subject: | Bug #69955 [NEW]: Segfault when trying to combine [] and assign-op on ArrayAccess object | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-193953@lists.php.net to get a copy of this message | ||
From: stas@php.net
Operating system: *
PHP version: master-Git-2015-06-28 (Git)
Package: Reproducible crash
Bug Type: Bug
Bug description:Segfault when trying to combine [] and assign-op on ArrayAccess object
Description:
------------
When applying assign-operator (like +=) to result of $a[] when $a is an
object implementing ArrayAccess, segfault happens.
Test script:
---------------
<?php
class C10 implements ArrayAccess
{
function offsetExists($offset)
{
echo "\nInside " . __METHOD__ . "\n";
var_dump($offset);
}
function offsetGet($offset)
{
echo "\nInside " . __METHOD__ . "\n"; var_dump($offset);
return 100;
}
function offsetSet($offset, $value)
{
echo "\nInside " . __METHOD__ . "\n"; var_dump($offset);
var_dump($value);
}
function offsetUnset($offset)
{
echo "\nInside " . __METHOD__ . "\n";
var_dump($offset);
}
}
$c10 = new C10;
var_dump($c10[] += 5);
Expected result:
----------------
No segfault
Actual result:
--------------
Inside C10::offsetGet
NULL
Segmentation fault: 11
--
Edit bug report at https://bugs.php.net/bug.php?id=69955&edit=1
--
Try a snapshot (PHP 5.4): https://bugs.php.net/fix.php?id=69955&r=trysnapshot54
Try a snapshot (PHP 5.5): https://bugs.php.net/fix.php?id=69955&r=trysnapshot55
Try a snapshot (trunk): https://bugs.php.net/fix.php?id=69955&r=trysnapshottrunk
Fixed in SVN: https://bugs.php.net/fix.php?id=69955&r=fixed
Fixed in release: https://bugs.php.net/fix.php?id=69955&r=alreadyfixed
Need backtrace: https://bugs.php.net/fix.php?id=69955&r=needtrace
Need Reproduce Script: https://bugs.php.net/fix.php?id=69955&r=needscript
Try newer version: https://bugs.php.net/fix.php?id=69955&r=oldversion
Not developer issue: https://bugs.php.net/fix.php?id=69955&r=support
Expected behavior: https://bugs.php.net/fix.php?id=69955&r=notwrong
Not enough info: https://bugs.php.net/fix.php?id=69955&r=notenoughinfo
Submitted twice: https://bugs.php.net/fix.php?id=69955&r=submittedtwice
register_globals: https://bugs.php.net/fix.php?id=69955&r=globals
PHP 4 support discontinued: https://bugs.php.net/fix.php?id=69955&r=php4
Daylight Savings: https://bugs.php.net/fix.php?id=69955&r=dst
IIS Stability: https://bugs.php.net/fix.php?id=69955&r=isapi
Install GNU Sed: https://bugs.php.net/fix.php?id=69955&r=gnused
Floating point limitations: https://bugs.php.net/fix.php?id=69955&r=float
No Zend Extensions: https://bugs.php.net/fix.php?id=69955&r=nozend
MySQL Configuration Error: https://bugs.php.net/fix.php?id=69955&r=mysqlcfg