Edit report at https://bugs.php.net/bug.php?id=62737&edit=1
ID: 62737
Updated by: laruence@php.net
Reported by: leight at gmail dot com
Summary: Segfault invoking SplFileInfo->openFile
Status: Analyzed
Type: Bug
Package: Reproducible crash
Operating System: Linux / OSX
PHP Version: master-Git-2012-08-03 (Git)
Block user comment: N
Private report: N
New Comment:
sure, I am still working on this, thanks
Previous Comments:
------------------------------------------------------------------------
[2012-08-03 16:21:25] laruence@php.net
The following patch has been added/updated:
Patch Name: ChangeDisableClassHandler.patch
Revision: 1344010885
URL: https://bugs.php.net/patch-display.php?bug=62737&patch=ChangeDisableClassHandler.patch&revision=1344010885
------------------------------------------------------------------------
[2012-08-03 15:43:01] reeze dot xia at gmail dot com
Hi,
by replace create_object function pointer and free function table
isn't enough, after apply the patch, I got this,
maybe more handlers need to be replaced and cleanup.
Fatal error: Uncaught exception 'RuntimeException' with message
'get_class_vars() expects exactly 1 parameter, 2 given' in
/Users/reeze/Opensource/php-test/php-src-5.3-dev/xx.php:6
Stack trace:
#0 [internal function]: SplFileObject->get_class_vars('/bin/ls', 'r')
#1 /Users/reeze/Opensource/php-test/php-src-5.3-dev/xx.php(6): SplFileInfo-
>openFile('r')
#2 {main}
thrown in /Users/reeze/Opensource/php-test/php-src-5.3-dev/xx.php on line 6
------------------------------------------------------------------------
[2012-08-03 15:03:17] laruence@php.net
I have made a patch for this.
------------------------------------------------------------------------
[2012-08-03 15:02:48] laruence@php.net
The following patch has been added/updated:
Patch Name: ChangeDisableClassHandler.patch
Revision: 1344006168
URL: https://bugs.php.net/patch-display.php?bug=62737&patch=ChangeDisableClassHandler.patch&revision=1344006168
------------------------------------------------------------------------
[2012-08-03 14:25:19] laruence@php.net
this is a very badly bug.
but I think it's not a spl issues, we should change the behavior of
zend_disable_class,
since for now, it will delete the class entry, which will make the class entry
pointer (preserved by extension) become a wild pointer..
dereference it is a undefined behavior, in this sense, segfault is lucky.
------------------------------------------------------------------------
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=62737--
Edit this bug report at https://bugs.php.net/bug.php?id=62737&edit=1