Bug #73684 [ReO->Dup]: Can be segmentation fault
| From: | nikic@php.net | Date: | Thu, 08 Dec 2016 14:12:01 +0000 |
| Subject: | Bug #73684 [ReO->Dup]: Can be segmentation fault | ||
| References: | 1 | Groups: | php.bugs |
| Request: | Send a blank email to php-bugs+get-205851@lists.php.net to get a copy of this message | ||
Edit report at https://bugs.php.net/bug.php?id=73684&edit=1
ID: 73684
Updated by: nikic@php.net
Reported by: deepvavar at mail dot ru
Summary: Can be segmentation fault
-Status: Re-Opened
+Status: Duplicate
Type: Bug
Package: Scripting Engine problem
Operating System: All
PHP Version: Irrelevant
Block user comment: N
Private report: N
New Comment:
This is a well-known issue, we probably have 100s of duplicates about this. E.g. #72568 for
interaction with pthreads, but there's many others around for specific cases. This usually
occurs either with magic methods or if you have extensions loaded that hook into the function call
process.
We know this issue exists and there is no concrete plan to fix it. We don't want to introduce
recursion limits (though if someone is sufficiently interested in this, an RFC might convince people
about this) and more direct means of detecting stack overflows are heavily system dependent.
We may want to improve our support for fcall hooks to enable more extensions to operate without need
to reenter the VM. This may also improve performance of profilers and debuggers, but would likely
come at a cost for the case where no such extension is used.
Previous Comments:
------------------------------------------------------------------------
[2016-12-08 14:03:48] cmb@php.net
Well, simplified reproduce script:
<?php
function foo() {
foo();
}
foo();
Crashes all PHP versions.
Anyway, as you insist this is a bug in PHP, I'm re-opening.
------------------------------------------------------------------------
[2016-12-08 13:56:32] thisisabug at server dot com
This is php bug, because php trying write data with incorrect pointer or incorrect size. Xdebug/etc.
just limiter. Without xdebug can be segfault. But maybe (as you see) this issue not for all php
versions/packages.
------------------------------------------------------------------------
[2016-12-08 13:29:16] cmb@php.net
Yes, this is a bug, but it is not a bug in PHP, but rather in the supplied reproduce script.
------------------------------------------------------------------------
[2016-12-08 13:16:01] thisisabug at server dot com
This is a bug, because OS kill php process with incorrect write to memory.
------------------------------------------------------------------------
[2016-12-08 12:57:31] cmb@php.net
Thank you for taking the time to write to us, but this is not
a bug. Please double-check the documentation available at
http://www.php.net/manual/ and the instructions on how to
report
a bug at http://bugs.php.net/how-to-report.php
public static function bar($b)
{
$b->b = self::$a->getNewB();
self::bar($b->b);
}
causes infinite recursion, what is considered to be a programming error[1]. The fact that the script
terminates differently is caused by different settings. On your Windows PHP 5.4 there is Xdebug
enabled, for instance.
[1] <http://php.net/manual/en/functions.user-defined.php#example-130>
------------------------------------------------------------------------
The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
https://bugs.php.net/bug.php?id=73684
--
Edit this bug report at https://bugs.php.net/bug.php?id=73684&edit=1